Servlet 过滤器

一、通过过滤器可以做什么  

1 对请求进行统一编码  

2 对请求进行认证

包 javax.servlet.Filter

1作用:把某些信息过滤掉

2实现 Filter 接口.

1public void doFilter (ServletRequest, ServletResponse, FilterChain)该方法完成实际的过滤操作,当客户端请求方法与过滤器设置匹配的URL时,Servlet容器将先调用过滤器的doFilter方法。FilterChain用户访问后续过滤器。

2public void init(FilterConfig filterConfig)

3public void destroy()

4web.xml中配置

<filter>

<filter-name>qq</filter-name>

<filter-class>con.hw.controller.EncodingFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>qq</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

乱码处理

public void doFilter(ServletRequest arg0, ServletResponse arg1,

FilterChain arg2) throws IOException, ServletException {

HttpServletRequest request=(HttpServletRequest) arg0;

HttpServletResponse response=(HttpServletResponse) arg1;

request.setCharacterEncoding("utf-8");

response.setContentType("text/html;charset=utf-8");

response.setCharacterEncoding("utf-8");

arg2.doFilter(request, response);//通过验证

}

非法字段

public void doFilter(ServletRequest arg0, ServletResponse arg1,

FilterChain arg2) throws IOException, ServletException {

HttpServletRequest request=(HttpServletRequest) arg0;

HttpServletResponse response=(HttpServletResponse) arg1;

String jl = request.getParameter("jl");

if(jl!=null&&jl.indexOf("小狗")!=-1){

response.sendRedirect("filter.jsp");

}else{

arg2.doFilter(request, response);//放行

}

}

验证登录

public void doFilter(ServletRequest request1, ServletResponse response1,FilterChain chain) throws IOException, ServletException {HttpServletRequest request=(HttpServletRequest) request1;HttpServletResponse response=(HttpServletResponse) response1;  HttpSession session = request.getSession();  if(session.getAttribute("user")!=null){    chain.doFilter(request, response);//放行  }else{  response.sendRedirect(request.getContextPath()+"/login.jsp");  }}f3com.filter.LoginFilterf3/PersonListServlet

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容