servlet获取JSP页面内容为乱码怎么解决

servlet获取JSP页面内容为乱码怎么解决,第1张

jsp提交数据有两种方式,一种是post,一种是get,两种不同的提交方式对中文的处理也不同。

post提交方式只需在servlet中设置好requestsetCharacterEncoding("编码集"); 注:编码集按照您的需求写,可以是UTF-8,也可以是GBK或GB2312

get提交方式则需要转码,因为tomcat服务器编码集为ISO8859-1,需要手动转码,下方代码是我个人编写的一个工具类,希望对你有帮助!另外jsp传递中文如果用get提交方式,在前台对中文也要

public static String returnNewString(String oldString){

     String newString="";

try {

newString = new String(oldStringgetBytes("ISO-8859-1"),"UTF-8");

} catch (UnsupportedEncodingException e) {

eprintStackTrace();

}

      return newString;

     }如既有可能有post提交方式,也有可能有get提交方式,可以采用修改tomcat的serverxml文件,或采用过滤器,修改serverxml文件方式为:<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol=">

参考——》JSP和Servlet的中文乱码处理

-

无处不在

-

博客频道

-

CSDNNET

超链接时出现乱码(低版本浏览器不行IE6)

在Web开发中,挺多的时候都是通过超链接去传递中文参数的,这也会导致在显示的时候也会出现乱码,对于超链接来说,它实际上是向服务器端发送了一个请求,而它发出的请求是属于get请求,所以对于超链接的乱码来说,它处理乱码的方式和表单的get请求出现乱码的方式是一样的。

客户端的get请求

对于不同的请求方式,解决乱码的问题也是不一样的,对于客户端的get请求来说,服务器端处理要想不出现乱码,解决这个问题稍微复杂一些,需要用到String类型的构造函数,其中的一个构造函数就是用指定的编码方式去解码,一般都用“UTF-8”的方式。只要在服务器端将请求得到的参数重新构造成一个字符串就行了。如下所示:

String

stuname

=

requestgetParameter("stuname");

String

str

=

new

String(stunamegetBytes("ISO-8859-1"),"utf-8")

经过构造之后,客户端输入中文,且表单时get请求的情况下,str就变成了中文了。如果请求参数比较多,最好将它封装成一个工具类:

public

class

MyUtil

{

public

static

String

getNewString(String

str)

throws

UnsupportedEncodingException

{

return

new

String(strgetBytes("ISO-8859-1"),"UTF-8");

}

}

String

stuname=

MyUtilgetNewString(requestgetParameter("stuname"));

页面也需要设置转码的:

页面:(jsp)

<%@ page language="java" import="javautil" pageEncoding="UTF-8"%>

responsesetContentType("text/html;charset=UTF-8");

处理文件:(java)

转码的三种方法:

A 接受参数时进行编码转换

String str = new String(requestgetParameter("something")getBytes("ISO-8859-1"),"utf-8"); 这样的话,每一个参数都必须这样进行转码。很麻烦。但确实可以拿到汉字。

B 在请求页面上开始处,执行请求的编码代码, requestsetCharacterEncoding("UTF-8"),把提交内容的字符集设为UTF-8。这样的话,接受此参数的页面就不必在转码了。直接使用

String str = requestgetParameter("something");即可得到汉字参数。但每页都需要执行这句话。

这个方法也就对post提交的有效果,对于get提交和上传文件时的enctype="multipart/form-data"是无效的。稍后下面单独对这个两个的乱码情况再进行说明。

C 为了避免每页都要写requestsetCharacterEncoding("UTF-8"),建议使用过滤器对所有jsp进行编码处理。

新手可以暂时不考虑过滤器的方法,过滤器一般都会涉及到配置开发,要修改webxml,还算是比较麻烦的,建议接触java一段时间后再考虑使用过滤器的方法。或者如果应用了struts框架,可以查看struts的转码过滤器配置。

以上就是关于servlet获取JSP页面内容为乱码怎么解决全部的内容,包括:servlet获取JSP页面内容为乱码怎么解决、jsp页面<a>标签传中文参数到struts后台乱码该怎么解决、jsp页面中a标签传值到Servlet中 中文变成乱码了 是怎么回事 编码全是UTF-8等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9752479.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存