Struts过滤器过滤某些字符

来源:互联网 发布:docker golang 部署 编辑:程序博客网 时间:2024/05/21 06:55


(1)天朝的规矩做项目的时候可能需要过滤某些特定的字符,在更多的用途是安全的考虑,下边就是一个过滤字符的简单案例;


(2)过滤器代码如下:

package com.lc.filter;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.HttpServlet;public class SafeFilter extends HttpServlet implements Filter {private String keywords[];public void doFilter(ServletRequest arg0, ServletResponse arg1,FilterChain arg2) throws IOException, ServletException {String name = arg0.getParameter("username"); // 获得表单提交的用户名 usernameif (name != null) {  //先判断用户名是否为空for (String key : keywords) {if (key.equals(name)) {arg0.setAttribute("err", "由第一个过滤器 安全过滤器拦截住了!");arg0.getRequestDispatcher("/WEB-INF/tishi.jsp").forward(arg0, arg1);return;}}}arg2.doFilter(arg0, arg1);}public void init(FilterConfig arg0) throws ServletException {//从配置文件中读取需要过滤的字符串 并舍去“;” 得到数组keywordskeywords = arg0.getInitParameter("keywords").split(";");}}


(3)web.xml文件中的配置:

<!-- 管理安全的过滤器  并且是第一个过滤器配置的时候一定是在最前边的 --><filter><filter-name>SafeFilter</filter-name><filter-class>com.lc.filter.SafeFilter</filter-class><!-- 下边是需要过滤的字符 --><init-param><param-name>keywords</param-name><param-value>拉登;毛豆;凤姐;虫虫</param-value></init-param></filter><filter-mapping><filter-name>SafeFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>


ok 到此完成!



3 0
原创粉丝点击