Filter过滤器的作用
- Filter的作用:过滤器处于客户端和服务器端资源之间,对所有的请求或者响应进行拦截操作
- Filter过滤器在开发过程中的实际运用:
- Servlet 开发和Filter开发做对比
- Servlet开发
- Filter开发
Filter的作用:过滤器处于客户端和服务器端资源之间,对所有的请求或者响应进行拦截操作
1:以常规的方式调用资源(Servlet/JSP);
2:利用修改过的请求信息调用资源;
3:调用资源之后,但在响应到客户端之前,对响应做出修改;
4:阻止当前资源调用,代之转到其他资源。
Filter过滤器在开发过程中的实际运用:
- 对请求中的字符设置编码
- 登陆验证过滤器(用户在跳转页面的 时候必须保证它是一直登录的,那么就需要编写一个Filter 类登录验证)
- 对敏感字(非法文字)进行过滤
- 作为MVC框架中的前端控制器(拦截用户的请求)
Servlet 开发和Filter开发做对比
Servlet开发
- 自定义一个类(xxxxServlet),实现于javax.servlet.Servlet
- Servlet接口中的方法 init() 初始化方法、service() 处理请求 、destory() 销毁
- 通过Tomcat管理Servlet程序(web服务器有很多,不止Tomcat,但是这里只说Tomcat)=在web.xml配置Servlet,自定义的Servlet上使用WebServlet("/资源名")
<servlet><servlet-name>自定义的Servlet的别名(别名)</servlet-name><servlet-class>自定义所在Servlet的全限定类名</servlet-class>
</servlet><servlet-mapping><servlet-name>(别名)</servlet-name><url-pattern>/资源名称</url-pattern></servlet-mapping>
url-patter的资源名称:是外界访问Servlet的资源名称
Filter开发
- 自定义一个xxxFilter ,实现于javax.servlet.Filter接口
- Filter接口中的方法 init(FilterConfig varl) 过滤对象出现,deFilter()对请求进行过滤操作 ,destory()销毁对象
3.通过Tomcat管理Filter程序:web.xml配置做相关配置,Filter使用WebFilter(“/资源名”)
<filter><filter-name>自定义的Filter的别名</filter-name><filter-class>自定义Filter的全限定名</filter-class></filter><filter-mapping><filter-name>别名</filter-name><!-- 对哪些资源做过滤操作 --><url-pattern>/资源名称</url-pattern></filter-mapping>
url-pattern:
url-pattern的文本内容是指Filter对哪一些资源进行过滤操作:如: /yu.jsp :说明当前自定义的Filter类只会对/yu.jsp做拦截/过滤。/com :说明当前Filter只会对/com所处的资源做拦截/过滤。/yu/* :说明当前Filter只会对以/yu/作为前缀的资源做拦截/过滤。/* :说明当前Filter会对所有资源做拦截/过滤。
FilterChain(过滤器链)执行完doFilter()的时候要么在if中跳转其他页面 和else中放行请求(chain.doFilter(request,response))。总之拦截请求成功之后必须对请求放行