jsp页面之间请求传输参数的乱码问题

今天在处理jsp页面传输信息的时候遇到了出现乱码的问题,现在分享一下解决方案:

首先如果是POST请求的话,在接受数据时应该先声明

request.setCharacterEncoding("utf-8");

然后再获取另一个页面传过来的参数,比如

String id=request.getParameter("id");
String type=request.getParameter("type");等。

但是如果是GET请求的话就不能再用这个方法了。用两种方法可以处理这种情况。

第一种是:

String type=request.getParameter("type");//先获取到目标数据
type= new String(type.getBytes("iso-8859-1"),"utf-8");//把目标数据以iso-8859-1的编码形式把一个字符串分解成一个字符数组,然后再以utf-8的格式new一个新的字符串

这样就不会再出现中文乱码的情况了,但是这种情况比较麻烦,因为要对每一个中文数据都要进行处理。那么还有一种更为简单的方法

第二种方法是:

修改Tomcat中配置文件的参数,一半Tomcat8.0以上的版本不会出现这种情况,只有8.0以下的按本会出现这种情况。

在Tomcat下conf文件夹下的server.xml文件中把                 connectionTimeout="20000"
               redirectPort="8443" />

修改成                connectionTimeout="20000"
               redirectPort="8443" URIEncoding="utf-8"/>

就可以了一劳永逸!!


你可能感兴趣的:(java基础)