jsp中文乱码

来源:互联网 发布:全知视角 编辑:程序博客网 时间:2024/05/29 02:18

一般使用一个过滤器来解决中文编码的问题

1.建一个实现Filter接口的java类,这个类会自动进行过滤



   将doFilter的改为一下形式

    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        System.out.println("过滤器开始工作");
        request.setCharacterEncoding("gb2312");    //只解决post提交
        chain.doFilter(request, response);
    }


在你的工程的WEB-INFO的web.xml中加入一下代码

<filter>
<filter-name>encoding</filter-name>    //encoding是映射实例
<filter-class>com.xupt.edu.filter.EncodingFilter</filter-class> //EncodingFilter是你实现Filter的类名

 

/*

<init-param>
<param-name>charset</param-name>  这是在过滤器初始化的参数
<param-value>gb2312</param-value>   这是初始化参数值
</init-param>

加入以上内容就可在实现类中init方法中加入

 

*/

 

</filter>

<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>  //  /*是对你服务器中提交的数据都进行过滤
</filter-mapping>



在apach中的conf目录下的server.xml中的网站端口中的最后加入URIEncoding="gb2312  ,这样可以解决get提交的数据

如 Define a non-SSL HTTP/1.1 Connector on port 8080  // 一般默认是8080下面该为8888
-->
<Connector port="8888" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="gb2312"/>

原创粉丝点击