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/