Filter过滤器复习笔记
来源:互联网 发布:游戏辅助编程 编辑:程序博客网 时间:2024/06/07 12:47
编码格式
web.xml配置
<!-- 中文编码 --> <filter> <filter-name>chinesefiter</filter-name> <filter-class>com.eduask.control.filter.ChineseFilter</filter-class> </filter> <filter-mapping> <filter-name>chinesefiter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
实现Filter
public class ChineseFilter implements Filter{ public void destroy() { } @Override public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { req.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8"); resp.setCharacterEncoding("utf-8"); chain.doFilter(req, resp); } public void init(FilterConfig arg0) throws ServletException { }}
过滤敏感词
1、敏感词设置
public class WordUtil { // 过滤单词的工具,有增删改要过滤的内容的功能 单例 private static List list = new ArrayList(); // 初始化的单词 static { list.add("fuck"); } public static List getWords() { return list; } //增加敏感词 public static void addWords(String name) { list.add(name); } //移除敏感词 public static void remove(String name) { for (int i = 0; i < list.size(); i++) { if (list.get(i) == "b") { list.remove(i--); } } } //修改敏感词}
2、设置到servlet,重写里面的方法
public class MyFilterForWord extends HttpServletRequestWrapper{//包装类 public MyFilterForWord(HttpServletRequest request) { super(request); } //重新getParameter方法 public String getParameter(String name){ String words=super.getParameter(name); //之前的e System.out.println("过滤前的内容:"+words); List<String> list=WordUtil.getWords(); for(String l:list){ words=words.replace(l, "**"); } System.out.println(); return words; }}
3、web.xml设置
<!-- 过滤敏感词 --> <filter> <filter-name>sensitive</filter-name> <filter-class>com.eduask.control.filter.SensitiveWordsFilter</filter-class> </filter> <filter-mapping> <filter-name>sensitive</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
实现Filter
public class SensitiveWordsFilter implements Filter{ public void destroy() { } @Override public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { //将req转为http HttpServletRequest hreq=(HttpServletRequest) req; MyFilterForWord myfilter=new MyFilterForWord(hreq);// 设置过滤后的req chain.doFilter(myfilter, resp); } public void init(FilterConfig arg0) throws ServletException { }}
中文编码过滤
<!-- 编码过滤器 --> <filter> <filter-name>setCharacterEncoding</filter-name> <filter-class>com.edusak.filter.EncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>setCharacterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
//public class EncodingFilter implements Filter { private String encoding; private Map<String,String> params=new HashMap<String,String>(); @Override public void init(FilterConfig config) throws ServletException { //初始化 encoding=config.getInitParameter("encoding"); for(Enumeration e=config.getInitParameterNames();e.hasMoreElements();){ String name=(String) e.nextElement(); String value=config.getInitParameter(name); params.put(name, value); } } @Override public void destroy() { System.out.println("end do the coding filter"); params=null; encoding=null; } @Override public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { req.setCharacterEncoding(encoding); chain.doFilter(req, resp); }}
0 0
- Filter过滤器复习笔记
- Filter过滤器【笔记】
- 【Java笔记一】Filter过滤器
- java 过滤器(Filter)学习笔记
- filter过滤器学习笔记-java
- angularjs 过滤器filter 学习笔记
- 过滤器Filter的开发(笔记)
- JavaWeb笔记之快速了解Filter过滤器
- Servlet笔记(四)过滤器Filter
- 过滤器Filter
- 过滤器Filter
- Filter 过滤器
- 过滤器 filter
- 过滤器filter
- 过滤器,Filter
- 过滤器Filter
- filter--过滤器
- 过滤器Filter
- Keras基于Cifar-10数据集的CNN实现
- 什么是中间件?
- 跨域问题浅析
- Problem H: 时间类的静态成员计数
- 基于layPage分页插件浅析两种分页方式
- Filter过滤器复习笔记
- 自定义JDBC数据库连接池小例子
- 在Hadoop集群实施成功后再次格式化名称节点,datanode无法加入集群的处理办法
- 25 python-opencv cv2.findcontours函数
- Problem I: 时间类的加、减法赋值运算
- 因特网协议栈中的层
- 又见jsp
- 【516】 Longest Palindromic Subsequence
- 优先队列基础