一般使用一个过滤器来解决中文编码的问题
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"/>