`
sumongh
  • 浏览: 226492 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

一个好用的中文编码过滤器的代码

阅读更多
 <form name="theForm" action="" method="post" onClick="fsubmit()">
<input type="radio" name="page">JSP页面<p>
<input type="radio" name="page">Servlet页面<p>
请输入测试内容:<input type="text" name="content"><p>
<input type="submit" value="提交">
</form>

过滤器

package org.sunxin.lesson.jsp.ch21;

import java.io.IOException;
import javax.servlet.*;



public class SetCharacterEncodingFilter implements Filter {

protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;

public void destroy() {

this.encoding = null;
this.filterConfig = null;

}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {

// Conditionally select and set the character encoding to be used
if (ignore || (request.getCharacterEncoding() == null)) {
String encoding = selectEncoding(request);
if (encoding != null)
request.setCharacterEncoding(encoding);
}
response.setCharacterEncoding("text/html;charset=+encoding");

chain.doFilter(request, response);

}


public void init(FilterConfig filterConfig) throws ServletException {

this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if (value == null)
this.ignore = true;
else if (value.equalsIgnoreCase("true"))
this.ignore = true;
else if (value.equalsIgnoreCase("yes"))
this.ignore = true;
else
this.ignore = false;

}

protected String selectEncoding(ServletRequest request) {

return (this.encoding);

}
}



<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>TestServlet</servlet-name>
<servlet-class>org.sunxin.lesson.jsp.ch21.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>


<filter>
<filter-name>SetCharacterEncodingFilter</filter-name>
<filter-class>org.sunxin.lesson.jsp.ch21.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>SetCharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

分享到:
评论

相关推荐

    编码过滤器

    标题“编码过滤器”直指这一关键概念,而描述“配置在web.xml中的过滤器,支持过滤GET,POST方式提交的参数”则进一步明确了这种过滤器的作用范围。 在Web应用中,GET和POST是两种主要的HTTP请求方法,它们用来从...

    JavaWeb页面过滤器之编码过滤

    在实际项目中,编码过滤器通常是第一个被调用的过滤器,以确保在整个请求生命周期内都使用正确的字符编码。通过这种方式,我们可以有效地避免由于编码不一致引发的各种乱码问题,提高用户体验。 综上所述,JavaWeb...

    字符编码过滤器

    为了防止这种情况,我们可以创建一个字符编码过滤器,强制设置请求和响应的字符编码。在Servlet API中,HttpServletRequest的setCharacterEncoding()方法用于设置请求的编码,HttpServletResponse的setContentType()...

    JAVA过滤器标准代码

    总之,JAVA过滤器作为Java Web开发中的一个重要组成部分,提供了强大的功能和灵活性,可以用于解决多种实际问题,包括但不限于编码处理、权限验证、日志记录、异常处理、数据格式转换和缓存优化等。理解和掌握过滤器...

    javaFilter自定义编码过滤器

    在上面的代码中,我们定义了一个名为 EncodingFilter 的自定义编码过滤器,该过滤器用于防止中文乱码。该过滤器实现了 Filter 接口,并重写了 init()、doFilter() 和 destroy() 方法。 * init() 方法:在 init() ...

    解决字符编码的过滤器

    下面是一个具体的示例代码,展示了如何在Struts2应用中配置一个名为`encodingfilter`的过滤器,并指定其作用于所有请求路径(`/*`)上。 ```xml &lt;filter-name&gt;encodingfilter &lt;filter-class&gt;org.apache.struts2....

    jsp 过滤器中文乱码的处理

    在这个过滤器中,我们首先将请求转换为`HttpServletRequest`对象,然后调用`setCharacterEncoding()`方法设定字符编码为目标编码(如GBK或UTF-8),最后将请求传递给下一个过滤器或目标Servlet。 为了使过滤器生效...

    struts2过滤器代码

    页面开发时经常会出现中文乱码问题,需要我们对编码进行转换。手工转换很麻烦,写个过滤器就好多了。

    javaweb中文过滤器

    在JavaWeb开发中,中文过滤器是一个至关重要的组件,它主要负责解决在数据传输过程中可能出现的中文乱码问题。在Web应用中,由于编码格式不一致或者处理不当,经常会导致中文字符显示为乱码,影响用户体验。中文过滤...

    JavaWeb中过滤器的三个小案例

    我们创建一个过滤器,重写doFilter方法,在请求进入Servlet之前设置合适的字符编码。例如,对于POST请求,可以使用HttpServletRequest的setCharacterEncoding方法设置UTF-8编码,对于GET请求,可能需要修改request的...

    中文字符过滤器

    在IT行业中,中文字符过滤器(EncodingFilter)是解决Web应用程序中中文乱码问题的关键工具。乱码问题通常发生在数据的编码与解码过程中,尤其是当客户端与服务器之间通过HTTP传输包含中文字符的数据时。本篇文章将...

    jsp中FilterDome(乱码过滤器源代码)

    `FilterDome`是一个具体的Filter实现,通常用来解决字符编码问题,即乱码过滤器。在处理中文或其他多语言字符时,乱码问题时常出现,`FilterDome`就是为了解决这个问题而设计的。下面将详细介绍`FilterDome`的工作...

    如何配置Filter过滤器处理JSP中文乱码

    2. **实现过滤器代码** 创建名为`SetCharacterEncodingFilter`的类,继承自`javax.servlet.Filter`接口,并实现`doFilter()`方法。这个方法将在每个请求进入Servlet之前被调用,我们可以在这里设置请求和响应的字符...

    ssh框架乱码过滤器Filter

    创建一个自定义过滤器,我们首先要继承`javax.servlet.Filter`接口,并实现其`doFilter()`方法。在该方法中,我们需要获取到请求(HttpServletRequest)和响应(HttpServletResponse),然后设定合适的字符编码。...

    Java中文显示过滤器实例.rar

    在Java编程语言中,中文字符的正确显示是一个常见的挑战,特别是在处理...通过学习和分析这个实例,开发者可以更好地理解和应用Java中的编码过滤器,从而在实际项目中解决中文乱码问题,提高代码的可维护性和用户体验。

    jsp中的过滤器(含例子)

    这时,我们可以创建一个过滤器来统一设定请求和响应的编码方式。 下面是一个简单的`Filter`示例: 1. 首先,创建一个实现`Filter`接口的类: ```java import javax.servlet.*; import java.io.IOException; ...

    jsp 过滤器——解决中文乱码问题

    ##### 步骤二:编写过滤器代码 接下来,我们需要在生成的过滤器Java文件中添加相应的代码来处理编码问题。 1. **导入必要包**:确保已经导入`javax.servlet.*`、`javax.servlet.http.*`等必要的包。 2. **实现...

    过滤器,Jsp开发中的避免中文乱码

    - 过滤器链是多个过滤器按顺序调用的机制,每个过滤器可以决定是否将请求传递给下一个过滤器。 2. **中文乱码的成因**: - 编码不一致:客户端与服务器之间使用的字符编码不匹配,如浏览器发送的POST数据为UTF-8...

Global site tag (gtag.js) - Google Analytics