在访问页面,页面提交请求,服务器返回请求的过程中,可以加一层过滤器
以下是一个简单的过滤器,作用是修改所有servlet的response和request的编码格式
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DoEncoding implements Filter{
    @Override
    public void destroy() {
        /**
         * 页面销毁的时候调用本函数
         */
    }
    @Override
    public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain chain)
            throws IOException, ServletException {
        /**
         * 过滤器
         */
        HttpServletResponse response = (HttpServletResponse) arg1;//类型转换
        HttpServletRequest request = (HttpServletRequest) arg0;
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        chain.doFilter(request, response);//返还对象至servlet
    }
    @Override
    public void init(FilterConfig arg0) throws ServletException {
        /**
         * 页面初始化的时候调用本函数
         */
    }
}特别说一下,继承的filte类来自 import javax.servlet.Filter
在tomcat的配置中,使用过滤器也需要在web.xml中配置
方法和配置servlet基本一样
代码如下
 <filter>
    <filter-name>eccoding</filter-name> //名称
    <filter-class>com.t.servlet.DoEncoding</filter-class> //调用的java类
  </filter>
  <filter-mapping>
      <filter-name>eccoding</filter-name>//名称
      <url-pattern>/*</url-pattern> //对所有的本目录下的servlet生效,也可以指定目录
  </filter-mapping>过滤器的作用还有很多,很多判断可以交给过滤器执行,比如该户是否登录,这样就不需要在每个页面都验证用户是否登录,只需要在每次递交请求的时候由过滤器检查一下session就可以了.
过滤器的触发在客户端请求发出之后,服务器接受之前,反之亦然!
外行,初学java,请多指教.
 
		
 随时随地看视频
随时随地看视频 
				 
				 
				 
				 
				