servlet和filter的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoqiangyonghu/article/details/80692502
Filter可认为是Servlet的一种“变种”,它主要用于对用户请求进行预处理,
也可以对HttpServletResponse进行后处理,是个典型的处理链。它与Servlet的区别在于:它不能直接向用户生成响应。
完整的流程是:Filter对用户请求进行预处理,接着将请求交给 Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理
Filter必须实现javax.Servlet.Filter接口,并且必须定义以下三个方法:init(),destory(),doFilter().
Servlet一般继承HttpServlet,当Url匹配这个Servlet时候运行处理请求;
1,servlet 流程是短的,url传来之后,就对其进行处理,之后返回或转向到某一自己指定的页面。它主要用来在 业务处理之前进行控制.
2,filter 流程是线性的, url传来之后,检查之后,可保持原来的流程继续向下执行,被下一个filter, servlet接收等,而servlet 处理之后,不会继续向下传递。filter功能可用来保持流程继续按照原来的方式进行下去,或者主导流程,而servlet的功能主要用来主导流程。

猜你喜欢

转载自blog.csdn.net/xiaoqiangyonghu/article/details/80692502