jsp乱码解决(get和post请求情况不同)

当输入中文时method=get时显示乱码 

当输入中文时method=post时中文正常显示 

 原因:就是当请求方式是GET时,并不把表单数据封装在请求信息的正文中,请求的只是简单的想获取 并不发送信息给服务器, 
*并没有将(表单等)信息 传递给HTTP服务器,所以服务器在通过HttpServletRequest检索不到客户端在页面上输入的信息。 
         通过POST时,除了请求外,还外加发送信息给服务器,所以服务器可以通过HttpServletRequest检索到客户端在页面上输入的信息 
       (POST方式将页面上的表单数据封装在HttpServletRequest中作为请求信息发给了服务器程序)

解决办法:

接受参数时进行编码转换

String str = new String(request.getParameter("something").getBytes("ISO-8859-1"),"utf-8") 

或者修改tomcat的配置文件server.xml

Xml代码 
<Connector     
           port="8080"   
           maxThreads="150" minSpareThreads="25" maxSpareThreads="75"   
           enableLookups="false" redirectPort="8443" acceptCount="100"   
           debug="0" connectionTimeout="20000"     
           disableUploadTimeout="true" useBodyEncodingForURI="true"  />   

其中  useBodyEncodingForURI="true"为添加的内容!

也可以加上:URIEncoding="UTF-8"(有可能影响其他应用,所以不推荐)。 


你可能感兴趣的:(jsp乱码解决(get和post请求情况不同))