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 和客户端

一、Get方式的中文乱码1) 使用如下页面表单内容: 用户名: 密 码:...
  • lxf512666
  • lxf512666
  • 2016年10月26日 23:14
  • 3724

Java搭建servlet时doGet方法中文乱码问题

在搭建servlet时,用request获得网页传输的数据以及用response返回给网页数据时会出现中文乱码的问题。那么我们应该如何解决这个问题?乱码的原因  要想解决该问题首先要知道为什么会出现这...
  • To_be_Designer
  • To_be_Designer
  • 2015年08月11日 19:59
  • 4168

关于Servlet中前后台交互中文乱码问题的解决

在servlet前后台交互时,我们会经常遇到中文乱码的问题,以后是我总结的解决方式: 一、交互过程中,参数乱码的解决:    1.  如果请求方式是“get”: String user...
  • BeauXie
  • BeauXie
  • 2016年08月24日 14:55
  • 3150

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...
  • A__To__Z
  • A__To__Z
  • 2011年06月23日 17:23
  • 526

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

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

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

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

Weblogic的JSP问题解决方法

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入 在做项目的时候,JSP在运行的时候出现了一些问题,现将我的问题解决方法做一个小结,供以后作项目的参考。 问题1: weblog...
  • wangdabin_1216
  • wangdabin_1216
  • 2012年11月16日 00:37
  • 602

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

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

关于SpringMVC中text/plain的编码导致的乱码问题解决方法

敏感词过滤项目出现个问题,就是用SpringMVC给前台返回一句话,是String类型的,然后前台接收到是乱码。        先附上我的代码:       后台打印的都是正确的,到了...
  • weixin_38437243
  • weixin_38437243
  • 2018年01月13日 10:23
  • 23
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:jsp&servlet编码问题解决方法
举报原因:
原因补充:

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