博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Filter过滤非法字符
阅读量:6951 次
发布时间:2019-06-27

本文共 2118 字,大约阅读时间需要 7 分钟。

示例:定义一个Filter,用于用户发言中出现的“晕”字,即如果没有这个字则允许发言,如果有这个字则不允许发言并提示错误。

CharForm.jsp

1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2  3  4    5    6    7 <%-- 表单,提交方式为post,提交到DoGetDemo --%> 8 
9 用户名:
10 发言:
11
12
13
14
15 16

浏览器显示:

CharFilter.java

1 package com.mhb; 2  3 import java.io.IOException; 4  5 import javax.servlet.Filter; 6 import javax.servlet.FilterChain; 7 import javax.servlet.FilterConfig; 8 import javax.servlet.ServletException; 9 import javax.servlet.ServletRequest;10 import javax.servlet.ServletResponse;11 import javax.servlet.http.HttpServletRequest;12 13 public class CharFilter implements Filter {14 15 public void init(FilterConfig arg0) throws ServletException {16 System.out.println("非法文字过滤器初始化!");17 }18 public void doFilter(ServletRequest arg0, ServletResponse arg1,19 FilterChain arg2) throws IOException, ServletException {20 //设置参数的接收格式21 HttpServletRequest request = (HttpServletRequest)arg0;22 //设置参数的编码格式23 request.setCharacterEncoding("utf-8");24 //接收聊天内容25 String charContent = request.getParameter("charContent");26 27 if(charContent != null){28 // 等号右边的-1表示没有找到该字符串,29 //0表示该字符串位于第一个字符,1表示位于第二个字符。30 if(charContent.indexOf("晕")== -1){  31 arg2.doFilter(arg0, arg1);32 }else{33 request.getRequestDispatcher("/SendFailure.jsp").forward(arg0, arg1);34 }35 }else{36 arg2.doFilter(arg0, arg1);37 }38 }39 public void destroy() {40 System.out.println("非法文字过滤器销毁!");41 }42 }

ShowContent.jsp

1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2  3  4   发言成功! 5    6       
7

发言成功

8 用户名:${param.username}
9 发言内容:${param.charContent } 10
11 12

SendFailure.jsp

1 SendFailure .txt 2 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 3  4  5   发言失败 6    7    8 
9

发言失败,含有非法字符!

10
11 12

web.xml配置

CharFilter
com.mhb.CharFilter
CharFilter
/*

 

以上为所涉及到的代码,下面输入不含“晕”的发言内容

发言内容中包含“晕”字,直接跳转到发言失败页面。

转载地址:http://apkil.baihongyu.com/

你可能感兴趣的文章
【LeetCode 100_二叉树_遍历】Same Tree
查看>>
数学论文生成器的论文……被接受了
查看>>
电机随笔
查看>>
05机器学习实战之Logistic 回归scikit-learn实现
查看>>
安装PIL 点滴 fatal error: 'freetype/fterrors.h' file not found
查看>>
递归,尾递归,回溯
查看>>
POJ-1488(字符串应用)
查看>>
浅探SpringMVC中HandlerExecutionChain之handler、interceptor
查看>>
读大话设计模式有感
查看>>
获取当前WEB应用全路径
查看>>
网络编程的演进——从Apache到Nginx
查看>>
mui 中template 的使用
查看>>
2018.11.04-3988-地理课(geography)
查看>>
linux命令总结
查看>>
[激励机制]浅谈内部竞争——如何让你的员工玩命干活?
查看>>
把一个控制器的view添加到另外一个控制器
查看>>
pc端和移动端下拉刷新
查看>>
Maven详解之聚合与继承
查看>>
Spark(二)CentOS7.5之Spark2.3.1HA安装
查看>>
内存池和tcmalloc的性能比较
查看>>