Filter及FilterChain的使用详解:http://hanlei127a.blog.163.com/blog/static/27078345201232435017245/
过滤器就是拦截了请求和响应操作,并加一些操作处理
字符过滤器:解决中文乱码的问题,在请求和响应时加以字符处理的一些操作
public class CharatorFilter implements Filter{
private String encoding;
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
//解决post方式中文乱码问题
request.setCharacterEncoding(encoding);//这里的encoding参数在web.xml里有配
response.setContentType("text/html;charset="+encoding);//设置响应类型和编码方式
response.setCharacterEncoding(encoding);
//释放请求,过滤垫释放请求和相应,CharatorRequstWapper是针对get方式的提交重写getParameter方法,加入get方式的转码
chain.doFilter(new CharatorRequstWapper((HttpServletRequest) request), response);
}
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub 这里得到web.xml配置的初始化参数;
encoding = filterConfig.getInitParameter("encoding");
}
下面是CharatorRequstWapper
/**
* 自定义request,重写它的getParameter();重新包装request
* @author kuang
*HttpServletRequestWrapper:这个是HttpServletRequest的实现类
*/
public class CharatorRequstWapper extends HttpServletRequestWrapper{
HttpServletRequest request;
public CharatorRequstWapper(HttpServletRequest request) {
super(request);
this.request = request;
}
@Override
public String getParameter(String name) {
//得到用户提交数据的方式
String method = request.getMethod();
//取得具体的值
String value = super.getParameter(name);
//判断是否是get方式请求
if("get".equalsIgnoreCase(method)){
try {
//把数据做转码处理
value = new String(value.getBytes("ISO-8859-1"),"utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
return value;
}
}
下面是web.xml的配置;
<!-- 配置过滤器,放在第一位置,并含有一个参数变量,econding,在过滤器的servlet中这个参数就相当于值utf-8-->
<filter>
<filter-name>encoding</filter-name>
<filter-class>com.rshz.l10.filter.CharatorFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>拦截所有请求
</filter-mapping>
分享到:
相关推荐
以下是一个简单的字符过滤器示例: ```java public class CharFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ...
字符过滤是过滤器的一个常见应用场景。例如,在这个项目中,开发者可能创建了一个自定义的Filter类,该类检查请求参数或响应内容,移除或替换不安全或不合法的字符。这通常涉及到正则表达式和字符串操作,例如去除...
Java字符过滤器,也称为字符编码转换器,是Java编程中处理字符编码问题的重要工具。在处理文本数据时,尤其是在网络传输或者读取不同编码格式的文件时,可能会遇到字符乱码的问题。Java过滤器就是为了解决这些问题,...
本文将深入探讨一个Java非法字符过滤器的设计原理、实现细节以及其在实际场景中的应用。 #### 核心功能与设计思想 该Java非法字符过滤器的主要功能是对输入字符串中的非法字符进行识别和替换。设计者通过预定义一...
jsp 中的字符过滤器,屏蔽网页中或JFreeChart中的乱码问题
以下是一个简单的字符编码过滤器实现: ```java import javax.servlet.*; import java.io.IOException; public class CharacterEncodingFilter implements Filter { @Override public void init(FilterConfig ...
在IT行业中,中文字符过滤器(EncodingFilter)是解决Web应用程序中中文乱码问题的关键工具。乱码问题通常发生在数据的编码与解码过程中,尤其是当客户端与服务器之间通过HTTP传输包含中文字符的数据时。本篇文章将...
中文字符过滤器 JAVA的中文字符过滤器 EncodingFilter过滤器
"encoding-filter.jar"可能是一个实现了字符编码过滤器功能的Java类库,它可以被添加到J2EE应用中,自动处理字符编码转换。而"使用方法.txt"文件则可能提供了关于如何配置和使用这个过滤器的详细步骤和示例代码,以...
首先,我们来看一下如何创建一个简单的过滤器。在Java中,我们需要实现`javax.servlet.Filter`接口并重写其`doFilter()`方法。这个方法会在每次请求经过时被调用。以下是一个基础的过滤器实现: ```java import ...
下面是一个具体的示例代码,展示了如何在Struts2应用中配置一个名为`encodingfilter`的过滤器,并指定其作用于所有请求路径(`/*`)上。 ```xml <filter-name>encodingfilter <filter-class>org.apache.struts2....
非法字符过滤是Web应用安全的一个重要方面。过滤器可以用来检测和阻止可能包含恶意代码的输入,如SQL注入或跨站脚本(XSS)攻击。例如,我们可以自定义一个Filter类,检查请求参数,如果发现非法字符或敏感词汇,就...
首先,`XssFilter.java` 是一个实现了Servlet过滤器接口(javax.servlet.Filter)的类,它的主要任务是在HTTP请求到达业务处理层之前,对请求参数进行预处理,即过滤掉可能存在的非法或危险字符。通常,这个过滤器会...
首先使用一个过滤器进行图像加载,然后通过另一个过滤器进行颜色空间转换,接着是噪声滤除、边缘检测等多个过滤器。每个过滤器专注于完成特定的任务,最终通过管道连接起来形成完整的处理流程。 #### 结论 管道...
代码中还展示了一个通用的replace方法,该方法接收四个参数,分别是源字符串source、旧字符串oldStr、新字符串newStr以及一个布尔值matchCase。它实现了一个基本的字符串查找和替换逻辑,其中matchCase参数用于控制...
"字符过滤字符过滤字符过滤"这个标题可能指的是一个特定的字符过滤机制或者工具,用于检查和处理潜在有害或不合适的字符。这个过程可以防止SQL注入、跨站脚本攻击(XSS)等网络安全问题,同时也可以确保数据的规范性和...
以下是一个简单的例子,只允许用户输入数字: ```java InputFilter numberFilter = new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int ...
Servlet过滤器是Java Web开发中的一个重要组件,它允许开发者在请求到达Servlet之前或者响应离开Servlet之后进行拦截处理。本教程将深入讲解如何配置和使用Servlet过滤器,以及介绍五个经典的过滤器实例。 首先,让...