知方号

知方号

利用filter(过滤器)拦截非法字符

利用filter(过滤器)拦截非法字符

一、需求 当用户发出非法言论的时候,提示用户言论非法。

二、分析

创建一个表单用于发表言论。创建一个txt文件,其中存入非法字符。创建一个Filter,拦截请求。在init方法中将txt文件中的非法字符读取到内存中。获取请求中的参数,对请求的参数进行非法字符的校验。如果言论中没有含有非法字符,就放行。如果言论中含有非法字符,就拦截,并且提示用户非法言论。

三、实现过程

整个案例的结构如图 1.创建一个表单,用于发表言论 menu.jsp代码如下:

menu 请发表你的言论:

2.在src下创建一个illegalWords.txt文件,存入非法字符 存放非法内容的文件内容如下: 3.创建一个servlet用于接受表单提交的内容 illgalServlet代码如下:

package com.zjs.servlet;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;//访问地址@WebServlet(name = "illgalServlet", urlPatterns = "/IllegalServlet")public class illgalServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //设置字符集与得到打印流 response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); //在页面上输出 out.print("您的言论发表成功"); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); }}

4.创建一个过滤器,用来拦截请求,过滤请求中发表的言论的非法字符 illgalFilter代码如下:

package com.zjs.filter;import javax.servlet.*;import javax.servlet.annotation.WebFilter;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.*;import java.util.ArrayList;import java.util.List;@WebFilter(filterName = "illgalFilter", urlPatterns = "/IllegalServlet")public class illgalFilter implements Filter { //

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。