servlet 和filter的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了servlet 和filter的区别相关的知识,希望对你有一定的参考价值。

filter与servlet区别

filter:

 

      1.线性流程:url传来之后,检查之后,可保持原来的流程继续向下执行,被下一个filter, servlet接收;

 

        2. 功能 : 用于修改对某一资源的请求,或者修改从某一的响应

 

             可以对请求或响应(Request、Response)统一设置 编码,简化操作;

 

             同时还可进行逻辑判断,如用户是否已经登陆、有没有权限访问该页面等等工作

 

             随web应用启动而启动的,只初始化一次,以后就可以拦截相关请求,只有当你的web应用停止或重新部署的时候才销毁

 

           

 

      Filter有如下几个用处。

 

 

 

在HttpServletRequest到达Servlet之前,拦截客户的HttpServletRequest。

根据需要检查HttpServletRequest,也可以修改HttpServletRequest头和数据。

在HttpServletResponse到达客户端之前,拦截HttpServletResponse。

根据需要检查HttpServletResponse,也可以修改HttpServletResponse头和数据。

 

 

Filter有如下几个种类。

 

 

 

用户授权的Filter:Filter负责检查用户请求,根据请求过滤用户非法请求。

日志Filter:详细记录某些特殊的用户请求。

负责解码的Filter:包括对非标准编码的请求解码。

能改变XML内容的XSLT Filter等。

Filter可负责拦截多个请求或响应;一个请求或响应也可被多个请求拦截。       

servlet:

 

        1.短流程: url传来以后, 就对其进行处理,之后返回或转向到某一自己指定的 servlet 或是 页面

 

        2. 功能 : 用于业务处理

 

 

 

图解filter与servlet 在程序中的关系:

 

 

 

 

 

具体的如下图:

 

 

 

转载请说明:转载自http://www.cnblogs.com/yiyongyao/

以上是关于servlet 和filter的区别的主要内容,如果未能解决你的问题,请参考以下文章

Filter,Servlet,Listener区别与联系

servlet 和filter的区别

Spring filter和拦截器的区别和执行顺序

java---servlet与filter的联系与区别

Spring filter和拦截器的区别和执行顺序

Filter与Servlet的区别和联系