Java中过滤器Filter作用:
为了在浏览器往服务器发送请求时,通过获取请求路径,进行登录权限验证、资源访问权限控制、敏感词汇过滤、字符编码转换等等操作,便于代码的重用,不必每个servlet中还要进行相应的操作。
以下只说明其中几种方法
创建与使用
1、创建一个Filter包,新建Filter文件并放入该包中
2、规定过滤路径
(1)在web注解中声明
若声明某个后缀,则 *.后缀名,不要加 /,不然会报错
(2)在web.xml文件中声明
3、在doFilter方法中写要执行的条件语句或属性
(注意,需要写在chain.doFilter方法前)
执行字符编码
敏感词汇过滤
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
String keyword = request.getParameter("comment");
if(keyword != null && keyword.contains("fuck") ) {
HttpServletResponse resp = (HttpServletResponse) response;
resp.sendRedirect("error.jsp");
}else{
chain.doFilter(request, response);
}
}
这里的jsp文件以form表单提交为案例:
若填写的多行文本中没有敏感词汇,执行hello.do的servlet文件,返回一个响应语句
若包含敏感词汇,浏览器访问.do路径文件时,过滤器获取到该路径,通过重定向的方式跳转到error.js页面,响应给浏览器。