Filter-统一全站编码

来源:互联网 发布:淘宝店铺过户条件 编辑:程序博客网 时间:2024/05/18 22:12

Filter基础问题

Servlet过滤器原理:

Servlet作为过滤器它可以对客户请求进行处理 处理完成之后会交给下一个过滤器处理 。客户请求在过滤器链中逐个处理直到请求发送到目标为止。 

过滤器组成的过滤链中进行处理 ,当所有的过滤器链处理成功后把提交的数据发送到最终目标 ,如果过滤器执行不成功将视图转向错误页面。

Filter开发步骤:

编写java类实现Filter接口,并实现其doFilter方法。

在 web.xml 文件中使用<filter><filter-mapping>元素对编写的filter类进行注册,并设置它所能拦截的资源。

Filter链:

在一个web应用中,可以开发编写多个Filter,这些Filter组合起来称之为一个Filter链。

web服务器根据Filterweb.xml文件中的注册顺序,决定先调用哪个Filter,当第一个FilterdoFilter方法被调用时,web服务器会创建一个代表Filter链的FilterChain对象传递给该方法。在doFilter方法中,开发人员如果调用了FilterChain对象的doFilter方法,则web服务器会检查FilterChain对象中是否还有filter,如果有,则调用第2filter,如果没有,则调用目标资源。

 FilterConfig接口:

用户在配置filter时,当web容器实例化Filter对象,调用其init方法时,会把封装了filter初始化参数的filterConfig对象传递进来。

因此开发人员在编写filter时,通过filterConfig对象的方法,就可获得:

String getFilterName():得到filter的名称。

String getInitParameter(String name): 返回在部署描述中指定名称的初始化参数的值。如果不存在返回null.

Enumeration getInitParameterNames():返回过滤器的所有初始化参数的名字的枚举集合。

public ServletContext getServletContext():返回Servlet上下文对象的引用。

统一全站字符编码的过滤器
代码如下:


   


注册web.xml:


0 0
原创粉丝点击