定义过滤器
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...
具体实现细节可能包括对请求或响应的特定处理,比如添加日志、改变字符编码、过滤非法请求等。 ### 六、源码学习与实践 为了深入理解过滤器,你可以通过阅读并分析`TFilter`源码来了解其具体实现。同时,你可以...
更复杂的过滤器可能会涉及对请求参数的检查,例如过滤非法文字。以下是一个检查非法文字的过滤器示例: ```java package cn.mldn.lxh.filter; import java.io.IOException; import javax.servlet.*; import javax....
通过实现Filter接口并配置在web.xml或使用Servlet 3.0以上的注解,可以在Web应用中插入Filter链,对请求进行过滤。 二、Filter在权限控制中的作用 在Web应用中,权限控制是确保系统安全的重要环节。通常,我们会...
下面我们将详细探讨`Filter`的工作原理以及如何实现字符过滤。 `Filter`是Java Servlet API的一部分,定义在`javax.servlet.Filter`接口中。它的主要任务是在HTTP请求和响应之间提供一种拦截机制,从而可以在不修改...
根据Java Servlet规范,过滤器通过实现`javax.servlet.Filter`接口来创建。这个接口定义了三个方法:`init()`, `doFilter()`, 和 `destroy()`。`init()`在过滤器首次被调用时执行,用于初始化过滤器;`doFilter()`是...
`javax.servlet.Filter`接口定义了过滤器的基本操作,开发者需要实现这个接口并覆盖`doFilter()`方法来定义自己的过滤逻辑。 对于中文过滤器,其核心功能是设定统一的字符编码,通常是在`doFilter()`方法中实现。...
// 过滤非法字符 paramValue = paramValue.replaceAll("[<>\"\'%]", ""); } req.setParameter(paramName, paramValues); } chain.doFilter(request, response); } } ``` 在这个例子中,我们使用正则...
- **安全过滤**:过滤非法字符,防止SQL注入或XSS攻击。 - **日志记录**:记录请求和响应的信息,便于分析和调试。 - **性能监控**:统计请求处理时间,监控系统性能。 7. **使用注解配置过滤器** 从Java ...
4. **安全过滤**:过滤非法请求,如XSS攻击、SQL注入等。 5. **性能监控**:统计请求响应时间,分析系统性能瓶颈。 通过JokerDemo这样的示例项目,你可以更深入地了解Servlet过滤器的使用和原理。在实践中,你可以...
`filterdemo代码`涉及到的是如何使用Java编程语言中的过滤器(Filter)技术来保护Web应用程序,防止恶意用户通过输入特殊字符来执行非法操作或者破坏系统。过滤器是Java Servlet API提供的一种机制,允许我们在请求...
然而,给定的文件`CharacterFiltrationHtml.java`似乎是一个自定义实现的过滤方法,具体实现方式可能根据文件内容而有所不同。 以下是一个简单的自定义HTML过滤器的Java示例: ```java import java.util.regex....
在Java Servlet规范中,过滤器通过实现`javax.servlet.Filter`接口来创建。`doFilter()`方法是过滤器的核心,它会在请求到达目标Servlet之前和之后被调用。在这个例子中,`doFilter()`方法可能包含检查请求来源的...
在IT行业中,字符串处理是一项基础且重要的任务,尤其是在数据清洗、文本分析以及用户输入验证等场景。本主题聚焦于“自定义过滤...在实际应用中,可以根据具体需求进行调整和优化,以实现更加高效和精确的字符串过滤。
在本教程中,我们将探讨如何在SSH框架的网上商城项目中使用过滤器(Filter)来实现购物登录功能的判断。SSH框架是由Struts、Spring和Hibernate三个组件组成的,用于构建企业级Java应用。在这个第18战中,我们将关注...
ISAPI (Internet Server Application Programming Interface) 是微软提供的一种扩展Web服务器功能的...通过学习这个例子,你可以掌握如何利用ISAPI Filter技术来过滤非法或不安全的Cookie,保护服务器免受恶意攻击。
以下是一个创建自定义过滤器`validate`的例子,该过滤器用于检查输入值中是否存在非法字符: ```javascript Vue.filter('validate', function(val) { val = val.toString(); var reg = /[`~!@#$%^&*()_+<>?:"{},\...
在这个例子中,`FILTER_VALIDATE_EMAIL`是一个过滤器常量,它会检查`$data`是否符合有效的电子邮件地址格式。 **二、过滤器类型** PHP过滤器提供多种类型,包括: 1. **FILTER_VALIDATE_BOOLEAN**:将值转换为...
3. **Filter Security Interceptor (FSI)**:这是一个Servlet过滤器,用于拦截请求并执行权限检查。如果用户未经过认证或无权访问资源,Acegi2会触发相应的处理,如重定向到登录页面或返回错误信息。 4. **Access ...
`filter_var()` 函数的核心作用是根据指定的过滤器对变量进行过滤。它的基本语法如下: ```php filter_var($variable, $filter, $options); ``` - `$variable`:需要过滤的变量,即待验证的邮箱地址。 - `$filter`...