`
foryougeljh
  • 浏览: 116458 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Filter实现过滤非法文字例子

 
阅读更多

定义过滤器

package com.ljh.test.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.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;

public class WordFilter implements Filter {

public void init(FilterConfig config) throws ServletException {
}
public void destroy() {
}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
//传入自己定义的ServletRequest对象
MyRequest req = new MyRequest((HttpServletRequest) request);
chain.doFilter(req, response);
}
//请求参数都是通过getParameter()和getParameterValues()方法得到的,复写这2个方法
//HttpServletRequestWrapper是ServletRequest的实现类
public class MyRequest extends HttpServletRequestWrapper {

private String[] words = { "日", "干"};

public String doFilter(String content) {
for (int i = 0; i < words.length; i++) {
if (content.indexOf(words[i]) != -1) {
content = content.replace(words[i], "*");
}
}
return content;
}

public MyRequest(HttpServletRequest request) {
super(request);
}

public String getParameter(String name) {
String content = super.getParameter(name);
return doFilter(content);
}

public String[] getParameterValues(String name) {
String [] temp = super.getParameterValues(name);
String [] contents = new String[temp.length];
for(int i=0;i<temp.length;i++){
String content = temp[i];
contents [i] = doFilter(content);
System.out.println(contents[i]);
}
return contents;
}
}
}

web.xml中配置过滤器

<filter>
<filter-name>charEncoder</filter-name>
<filter-class>com.ljh.test.filter.WordFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>charEncoder</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

分享到:
评论

相关推荐

    过滤器过滤用户输入的非法字符

    本文将深入探讨标题中的两个关键类:`XssFilter.java` 和 `XssHttpServletRequestWrapper.java`,以及它们在过滤非法字符中的作用。 首先,`XssFilter.java` 是一个实现了Servlet过滤器接口(javax.servlet.Filter...

    过滤器(filter) 例子源码

    具体实现细节可能包括对请求或响应的特定处理,比如添加日志、改变字符编码、过滤非法请求等。 ### 六、源码学习与实践 为了深入理解过滤器,你可以通过阅读并分析`TFilter`源码来了解其具体实现。同时,你可以...

    j2ee过滤器Filter使用详解(实例)

    更复杂的过滤器可能会涉及对请求参数的检查,例如过滤非法文字。以下是一个检查非法文字的过滤器示例: ```java package cn.mldn.lxh.filter; import java.io.IOException; import javax.servlet.*; import javax....

    filter 过滤用户权限

    通过实现Filter接口并配置在web.xml或使用Servlet 3.0以上的注解,可以在Web应用中插入Filter链,对请求进行过滤。 二、Filter在权限控制中的作用 在Web应用中,权限控制是确保系统安全的重要环节。通常,我们会...

    使用filter对字符进行过滤

    下面我们将详细探讨`Filter`的工作原理以及如何实现字符过滤。 `Filter`是Java Servlet API的一部分,定义在`javax.servlet.Filter`接口中。它的主要任务是在HTTP请求和响应之间提供一种拦截机制,从而可以在不修改...

    Servlet之过滤器

    根据Java Servlet规范,过滤器通过实现`javax.servlet.Filter`接口来创建。这个接口定义了三个方法:`init()`, `doFilter()`, 和 `destroy()`。`init()`在过滤器首次被调用时执行,用于初始化过滤器;`doFilter()`是...

    javaweb中文过滤器

    `javax.servlet.Filter`接口定义了过滤器的基本操作,开发者需要实现这个接口并覆盖`doFilter()`方法来定义自己的过滤逻辑。 对于中文过滤器,其核心功能是设定统一的字符编码,通常是在`doFilter()`方法中实现。...

    jsp字符过滤器

    // 过滤非法字符 paramValue = paramValue.replaceAll("[&lt;&gt;\"\'%]", ""); } req.setParameter(paramName, paramValues); } chain.doFilter(request, response); } } ``` 在这个例子中,我们使用正则...

    JAVA Web中过滤器

    - **安全过滤**:过滤非法字符,防止SQL注入或XSS攻击。 - **日志记录**:记录请求和响应的信息,便于分析和调试。 - **性能监控**:统计请求处理时间,监控系统性能。 7. **使用注解配置过滤器** 从Java ...

    JAVA WEB中的Servlet过滤器

    4. **安全过滤**:过滤非法请求,如XSS攻击、SQL注入等。 5. **性能监控**:统计请求响应时间,分析系统性能瓶颈。 通过JokerDemo这样的示例项目,你可以更深入地了解Servlet过滤器的使用和原理。在实践中,你可以...

    filterdemo代码

    `filterdemo代码`涉及到的是如何使用Java编程语言中的过滤器(Filter)技术来保护Web应用程序,防止恶意用户通过输入特殊字符来执行非法操作或者破坏系统。过滤器是Java Servlet API提供的一种机制,允许我们在请求...

    过滤HTML元素字符

    然而,给定的文件`CharacterFiltrationHtml.java`似乎是一个自定义实现的过滤方法,具体实现方式可能根据文件内容而有所不同。 以下是一个简单的自定义HTML过滤器的Java示例: ```java import java.util.regex....

    java 过滤器

    在Java Servlet规范中,过滤器通过实现`javax.servlet.Filter`接口来创建。`doFilter()`方法是过滤器的核心,它会在请求到达目标Servlet之前和之后被调用。在这个例子中,`doFilter()`方法可能包含检查请求来源的...

    自定义过滤各种字符串

    在IT行业中,字符串处理是一项基础且重要的任务,尤其是在数据清洗、文本分析以及用户输入验证等场景。本主题聚焦于“自定义过滤...在实际应用中,可以根据具体需求进行调整和优化,以实现更加高效和精确的字符串过滤。

    SSH框架网上商城项目第18战之过滤器实现购物登录功能的判断

    在本教程中,我们将探讨如何在SSH框架的网上商城项目中使用过滤器(Filter)来实现购物登录功能的判断。SSH框架是由Struts、Spring和Hibernate三个组件组成的,用于构建企业级Java应用。在这个第18战中,我们将关注...

    isapi_cookie

    ISAPI (Internet Server Application Programming Interface) 是微软提供的一种扩展Web服务器功能的...通过学习这个例子,你可以掌握如何利用ISAPI Filter技术来过滤非法或不安全的Cookie,保护服务器免受恶意攻击。

    Vue filter介绍及其使用详解

    以下是一个创建自定义过滤器`validate`的例子,该过滤器用于检查输入值中是否存在非法字符: ```javascript Vue.filter('validate', function(val) { val = val.toString(); var reg = /[`~!@#$%^&*()_+&lt;&gt;?:"{},\...

    PhpFilter

    在这个例子中,`FILTER_VALIDATE_EMAIL`是一个过滤器常量,它会检查`$data`是否符合有效的电子邮件地址格式。 **二、过滤器类型** PHP过滤器提供多种类型,包括: 1. **FILTER_VALIDATE_BOOLEAN**:将值转换为...

    例子源码Acegi2 带jar +tld 完整版 下载

    3. **Filter Security Interceptor (FSI)**:这是一个Servlet过滤器,用于拦截请求并执行权限检查。如果用户未经过认证或无权访问资源,Acegi2会触发相应的处理,如重定向到登录页面或返回错误信息。 4. **Access ...

    php实现验证邮箱格式的代码实例

    `filter_var()` 函数的核心作用是根据指定的过滤器对变量进行过滤。它的基本语法如下: ```php filter_var($variable, $filter, $options); ``` - `$variable`:需要过滤的变量,即待验证的邮箱地址。 - `$filter`...

Global site tag (gtag.js) - Google Analytics