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/

posted @ 2017-10-29 16:17  Great霸气猫  阅读(417)  评论(0编辑  收藏  举报