jsp页面之间传值乱码的问题解决方法(转)

终于解决了jsp页面之间的传值问题,总结如下:

源代码,a.jsp往b.jsp传值:

a.jsp页面内容:

<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>

<form action="b.jsp">

name:<input type=text name=name>

<input type=submit>

</form>

b.jsp页面内容:

<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>

<%

String name=request.getParameter("name");

%>

<body>

<%=name%>

</body>

现象:中文乱码,比如“??????”

解决方法如下:

方法一:

1.         在b.jsp中把pageEncoding="GB2312"改为pageEncoding="ISO8859-1"

虽然这样b.jsp页面显示的内容还是乱码,但是不是那种“??????”的乱码,而是一些特殊字符

2.         然后在浏览器中查看菜单中修改成GB2312的编码,这时乱码就显示中文了。

3.         但是这种方法是不可行的。

方法二:

1.         在b.jsp中把String name=request.getParameter("name");修改为

String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");

2.         这时再在页面上显示,则就是中文了。

3.         但是我个人不喜欢这种方法,因为编写起来代码非常繁琐

方法三:

1.         有人说修改get/post的传值方式,但是这是有前提的,如果只是把get方式修改成post方式,页面结果还是乱码!

2.         前提你必须配置了过滤器,若果你只是配置了过滤器,则传值方式必须是:post方式才不是乱码,如果是get方式照样是乱码!

3.         过滤器的配置,我想大家都能有,我就不说了

方法四:

1.         有人说配置tomcat的配置文件server.xml里这句:

<Connector URIEncoding="GB2312"

port="8080"   maxHttpHeaderSize="8192"

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" redirectPort="8443" acceptCount="100"

connectionTimeout="20000" disableUploadTimeout="true" />

加上这句:URIEncoding="GB2312"

2.         虽然可以但是有前提的,若果你过滤器没有配置,则只是配置了server.xml文件,这样只有在表单是get传值时候才可以!当是post方式时,照样是乱码!

*这时我们就可以看出在tomcat5中的post与get传值方式是不一样的*

*有人要问有没有一种方法让传值使用get方式或post方式都好用呢,下面就是我推荐的方法五*

方法五:

1.         其实很简单,就是同时实现方法三又实现方法四!

2.         就是先配置过滤器,又配置server.xml文件,都设置成GB2312的编码

3.         这样无论是post还是get方式的表单传值,中文都不会是乱码!

时间: 2024-11-03 21:55:14

jsp页面之间传值乱码的问题解决方法(转)的相关文章

jsp与jsp页面之间传值中文,页面显示乱码问题

xxx.jsp 页面传值到 confirm.jsp 页面 在拼接url时,对于中文名称字段应该加上 encodeURIComponent 方法,对中文进行十六进制编码 window.location.href = "${ctx}/cms/manage/confirm.jsp?applicantName="+encodeURIComponent(applicantName); confirm.jsp页面接收 因为这里是ISO-8859-1编码的 所以需要转换 <%=new Stri

JSP页面GET传值乱码问题

两个JSP页面进行GET传值的时候.两个页面的编码都是UTF-8,且传值之前设置response的content为UTF-8也解决不了问题. 设置tomcat的配置文件server.xml:在Connector节点下添加URIEncoding="UTF-8": <!-- 之前 --> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000&

如何在两个jsp页面之间传值,在另外一个页面用EL表达式获取值

第一个jsp页面 <% String ids=request.getParameter("id"); int id=Integer.parseInt(ids); %> <c:set var="ses" scope="session" value="<%=id %>"></c:set> 在第一个页面中,用EL表达式存储到session作用域中,在第二个页面中再到session作用域

.net 页面之间传值的几种方法!(转)

QueryString传值:1. 这是最简单的传值方式,但缺点是传的值会显示在浏览器的地址栏中且不能传递对象,只适用于传递简单的且安全性要求不高的整数值,例如: 2. 新建一个WEB项目,添加一个页面命名为Test1,在页面中添加一个Button命名为btnLogin,再添加两个TextBox分别命名为tbxUserName和tbxPassWord,添加Buttond的Click()事件: private void btnLogin_Click (object sender, System.Ev

【转】【ASP.NET MVC系列】浅谈ASP.NET 页面之间传值的几种方式

ASP.NET MVC系列文章 原文地址:https://www.cnblogs.com/wangjiming/p/6275854.html [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作篇)(下) [04]浅谈ASP.NET框架 [05]浅谈ASP.NET MVC运行过程 [06]浅谈ASP.NET MVC 控制器 [07]浅谈ASP.NET MVC 路由 [08]浅谈AS

JSP页面与JSP页面之间传输参数出现中文乱码的解决方案

在学习编程初期JSP与JSP页面之间传输参数大多数都是使用这样的方式 index.jsp?id=*&name=* 这样的传输方式实质上是一种GET传输方式, 那如果出现了中文乱码, 解决方法其实很简单, 可以在接收页面参数的JSP页面加上这样一句代码 ...... <% String id = request.getParameter("id"); String name = request.getParameter("name"); String e

asp.net页面之间传值方法详解

asp.net中页面之间传值我们用得最多的就是get,post这两种了,其它的如session,appliction,cookie等这些相对来说少用也不是常用的,只是在特殊情况下在使用了. 1. Get(即使用QueryString显式传递) 方式:在url后面跟参数. 特点:简单.方便. 缺点:字符串长度最长为255个字符:数据泄漏在url中. 适用数据:简单.少量.关键的数据. 适用范围:传递给自己.传递给另一个目标页面:常用于2个页面间传递数据. 用法:例如:url后加?UserID=…,

【JavsScript】父子页面之间跨域通信的方法

由于同源策略的限制,JavaScript跨域的问题,一直是一个比较棘手的问题,为了解决页面之间的跨域通信,大家煞费苦心,研究了各种跨域方案.之前也有小网同学分享过一篇“跨域,不再纠结” 开始照着尝试时还是有些不够明白的地方,深入了解之后,这里给大家补充一点更具体的做法. 先来看看哪些情况下才存在跨域的问题: 其中编号6.7两种情况同属于主域名相同的情况,可以设置domain来解决问题,今天就不讨论这种情况了. 对于其他跨域通信的问题,我想又可以分成两类: 其一(第一种情况)是a.com下面的a.

【JavaScript】父子页面之间跨域通信的方法

由于同源策略的限制,JavaScript跨域的问题,一直是一个比较棘手的问题,为了解决页面之间的跨域通信,大家煞费苦心,研究了各种跨域方案.之前也有小网同学分享过一篇“跨域,不再纠结” 开始照着尝试时还是有些不够明白的地方,深入了解之后,这里给大家补充一点更具体的做法. 先来看看哪些情况下才存在跨域的问题: 其中编号6.7两种情况同属于主域名相同的情况,可以设置domain来解决问题,今天就不讨论这种情况了. 对于其他跨域通信的问题,我想又可以分成两类: 其一(第一种情况)是a.com下面的a.