package org.wlc.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.HttpServletResponse;
public class CharacterFilter implements Filter {
private String req;
private String res;
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest request = (HttpServletRequest) arg0;
HttpServletResponse response = (HttpServletResponse) arg1;
request.setCharacterEncoding(req);
response.setCharacterEncoding(res);
arg2.doFilter(arg0, arg1);
}
public void init(FilterConfig config) throws ServletException {
// TODO Auto-generated method stub
req = config.getInitParameter("request");
res = config.getInitParameter("response");
}
}
xml
<filter>
<filter-name>MyFilter<filter-name>
<filter-class>org.wlc.filter.CharacterFilter<filter-class>
<init-param>
<param-name>request</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>response</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>MyFilter<filter-name>
<url-pattern>*<url-pattern>
<filter-mapping>
分享到:
相关推荐
在实际项目中,我们可能需要编写一些测试用例来验证字符编码过滤器的效果,比如包含特殊字符的表单提交,或者不同编码的URL请求等。 6. **最佳实践** - 为确保整个应用的一致性,建议在所有的HTTP响应中都明确指定...
这通常涉及到正则表达式和字符串操作,例如去除特殊字符,限制输入长度,或确保输入符合特定格式。使用`List`作为过滤字符库是一种常见的方法,将需要过滤的字符存储在列表中,然后在处理请求时检查每个字符是否在...
总的来说,解决JSP字符串乱码的过滤器是通过Java Servlet Filter机制,在请求到达Servlet之前和响应离开Servlet之后,对字符编码进行统一管理,从而保证数据传输的正确性。通过配置和编写Filter,我们可以确保整个...
代码中还展示了一个通用的replace方法,该方法接收四个参数,分别是源字符串source、旧字符串oldStr、新字符串newStr以及一个布尔值matchCase。它实现了一个基本的字符串查找和替换逻辑,其中matchCase参数用于控制...
例如,它可以解析接收到的ASCII字符串,查找特定的关键词或模式,然后根据预设规则过滤或转换这些数据,输出到日志文件、显示器或其他设备。 在实际应用中,串口数据过滤器可能包含以下功能: 1. 实时数据流处理:...
当一个请求匹配到过滤器的映射规则时,过滤器就会按照定义的顺序执行其doFilter方法,先进行字符编码转换,然后将请求传递给下一个过滤器或目标Servlet。 非法字符过滤是Web应用安全的一个重要方面。过滤器可以用来...
RFC2254规定了一种特殊的编码规则,用于将复杂的过滤器结构转换成可传输的字符串格式。这种表示法确保了过滤器的兼容性和可读性,同时避免了字符编码问题,特别是在处理非ASCII字符时。 **3. 过滤器类型** - **逻辑...
在IT领域,IE浏览器过滤器是一项重要的功能,它允许用户根据特定需求来阻止或限制访问特定的网址或者包含特定关键字的网页。这种技术主要用于提升网络浏览的安全性,防止不适宜内容的显示,以及提高工作效率,比如在...
接着,我们创建一个过滤器,例如一个`WordTokenizer`,用于将输入的字符串分解成单独的单词。这个过滤器可能使用`String.split()`方法,将句子分割成单词数组。 然后,我们需要一个`WordSorter`过滤器对单词进行...
HTML过滤器:为输入字段准备字符串 `HtmlFilterForInput`方法实际上是对`EncodeToHtml`方法的简单封装,用于进一步强调其用途是在准备将字符串插入到HTML表单的输入字段或文本区域前,对其进行安全编码。这种方法...
在Web应用中,过滤器链常常被用来在请求到达目标Servlet之前执行某些操作,如身份验证、编码转换等。在本例中,过滤器可能会先检查IP地址,如果通过,则继续检查用户名,若两者都满足条件,请求才会被允许通过。 4....
这个`SetCharacterEncodingFilter`通常会在请求到达Servlet之前设置请求的字符编码,以确保后续处理的字符串都是按照预设的编码(如UTF-8)进行解析,避免乱码现象。 以下是一个简单的`SetCharacterEncodingFilter`...
值得注意的是,这里有一个明显的错误:`isLogin.equals(true)`应该改为`isLogin.equals("true")`,因为`isLogin`是一个字符串而不是布尔值。 3. **setFilterConfig(final FilterConfig filterConfig)** 方法:这个...
本示例中的`URLfilter`类就是一个简单的过滤器,它的主要目的是防止SQL注入攻击,这是一种常见的恶意攻击手段,攻击者试图通过输入恶意SQL语句来获取未经授权的数据或者破坏数据库。 SQL注入攻击通常是由于应用程序...
2. **数据转换**:可以对请求参数进行格式化或校验,例如将请求的日期字符串转换为日期对象。 3. **日志记录**:记录请求信息,用于调试或审计。 4. **缓存管理**:对于静态资源,过滤器可以检查是否在缓存中存在...
"Spring MVC内置编码过滤器详解" Spring MVC框架中,如何解决从页面传来的字符串的编码问题?答案是使用CharacterEncodingFilter过滤器,该过滤器是Spring MVC内部提供的,主要用于设置请求响应的字符编码。 ...
在Java中,字符编码问题往往出现在输入输出流的处理、字符串的转换或者网络通信中。 在IT领域,"源码"和"工具"这两个标签表明这个话题可能包含了代码示例和实用工具来帮助理解和解决字符编码问题。源码可能是指Java...
在“文件名过滤器”中输入.jsp或.java后缀,接着在“在以下位置”选择你的项目,最后在“搜索文本”框内输入你的查询字符串,然后点击“搜索”。 3. **Visual Studio Code**:VS Code用户可以按下`Ctrl+Shift+F`...
在本文中,我们将深入探讨`angular-cleanurl`这个Angular过滤器,它主要用于将字符串转换成适合Web的安全URL。AngularJS,作为一个强大的前端JavaScript框架,提供了丰富的功能,包括数据绑定、依赖注入、指令以及...
- 数据库连接字符串中指定合适的字符集,如`jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8`。 - 文件读写时,使用`InputStreamReader`和`OutputStreamWriter`指定编码。 6. **总结**...