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/

原文地址:https://www.cnblogs.com/ZhongKing/p/7750307.html