jsp&servlet编码问题解决方法

原创 2015年11月19日 21:12:35
在Java Web项目中总会遇到编码格式问题,在JSP/Servlet与浏览器传输数据时,处理编码格式的方式通常是设置request对象和response对象的编码格式。然而,一个项目中有很多个JSP/Servlet,在每个JSP/Servlet中分别对request对象和response对象进行编码格式的设置是一件非常麻烦的事情,于是我们想能不能把对于request对象和response对象编码格式的设置统一起来做。
用过滤器解决统一设置编码格式的问题

    定义一个过滤器类CharacterEncodingFilter


    package com.ftx.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;

    public class CharacterEncodingFilter implements Filter {

        protected FilterConfig filterConfig = null;
        protected String encoding = "";

        public void init(FilterConfig filterConfig) throws ServletException {
            this.filterConfig = filterConfig;
            this.encoding = filterConfig.getInitParameter("encoding");
        }
        public void doFilter(ServletRequest request, ServletResponse response,
                FilterChain chain) throws IOException, ServletException {

            request.setCharacterEncoding(this.encoding);
            response.setCharacterEncoding(this.encoding);
            response.setContentType("text/html;charset="+this.encoding);

            chain.doFilter(request, response);
        }
        public void destroy() {
            this.encoding = null;
            this.filterConfig = null;
        }
    }
  在项目配置文件web.xml中添加过滤器的配置信息

  <filter>
            <description>CharacterEncodingFilter</description>
            <display-name>CharacterEncodingFilter</display-name>
            <filter-name>CharacterEncodingFilter</filter-name>
            <filter-class>
                org.zeroup.filter.CharacterEncodingFilter
            </filter-class>
            <init-param>
    <param-name>encoding</param-name>
    <param-value>utf-8</param-value>
            </init-param>
        </filter>

        <filter-mapping>
            <filter-name>CharacterEncodingFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>

此例将当前项目中所有request和response对象字符编码格式全部设置为utf-8,同时浏览器端读取和发送数据的编码格式也自动设定为utf-8。




相关文章推荐

Servlet Get及Post请求字符编码问题解决方法

前言在浏览器与服务器传递数据的时候有时候会因为字符集(char-set)不同而发生乱码的问题,一般我们将浏览器与服务器的编码都设置为UTF-8字符集编码.如果服务器和浏览器编码不一致,那么服务器获取浏...
  • AL0n4k
  • AL0n4k
  • 2016年06月04日 20:33
  • 1415

中文乱码--MySQL5.0中文问题及JDBC数据库连接和JSP汉字编码问题解决方法总

MySQL5.0中文问题解决方案如下:    1、在dos环境下,用mysql --default-character-set=gbk -hlocalhost-u root -p 这句话进入mysql...

JSP连接MYSQL5的中文问题解决方法

  • 2011年11月06日 10:09
  • 246KB
  • 下载

SSH2框架的jsp中文乱码问题解决方法

写了个SSH2框架的demo,数据库中有两个表,班级表和学生表,双向关联一对多的关系。大致功能如下面三个界面      在功能实现的过程中,发现前台jsp页面往后台action传值时,文本框输入...

JSP连接MYSQL5的中文问题解决方法

用JAVA/JSP做开发很久了,也见过许多朋友做过,有很大一部分用的是MYSQL的数据库,现在MYSQL数据库版本5.0及以上的都已经被用的很广泛了,但一直有一个问题,使刚入门的朋友费劲心思.就是JS...
  • wclxyn
  • wclxyn
  • 2011年10月27日 03:34
  • 1176

中文编码问题解决方法汇总

常见的JAVA程序包括以下类别:  *直接在console上运行的类(包括可视化界面的类)  *JSP代码类(注:JSP是Servlets类的变型)  *Servelets类  *EJB类  ...

使用HtmlAgilityPack和ScrapySharp抓取网页数据遇到的几个问题解决方法——格式编码问题

需要用到对应市区县街道居委会的区域编码,于是找到统计局的网页,对这些数据进行抓取,用到了HtmlAgilityPack和ScrapySharp,由于也是第一次从网页抓取数据,所以对于HtmlAgili...

java和jsp中文编码问题的解决方法(ISO8859_1、GBK、UTF-8)(精品)

java和jsp中文编码问题的解决方法(ISO8859_1、GBK、UTF-8) Java中文问题一直困扰着很多初学者,如果了解了Java系统的中文问题原理,我们就可以对中文问题能够采取根本的解决之...

笔记本常见问题解决方法

  • 2015年02月11日 08:01
  • 79KB
  • 下载

FLUENT 17.0启动不了问题解决方法

  • 2017年01月13日 20:31
  • 2.21MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:jsp&servlet编码问题解决方法
举报原因:
原因补充:

(最多只允许输入30个字)