页面传参

本文介绍了一种在JSP页面间正确传递中文参数的方法。通过使用URLEncoder.encode进行编码,并在接收端用正确的字符集解码,确保了中文字符能够被正确地显示。

 

这个问题比较老了,但是网上的案例太少。自己做个记号两个页面a.jsp,b.jsp。一个发,一个收。a.jsp

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
 2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 3
<html xmlns="http://www.w3.org/1999/xhtml">
 4
<head>
 5
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 6
<title>A</title>
 7
</head>
 8 
 9
<body>
10
<% 
11       String str_test = "中文";
12
%>
13
<form method=post action="b.jsp?test=<%=java.net.URLEncoder.encode(str_test) %>"> 
14         
<input type="submit" value="按钮1">   
15 
</form>
16 
17 
<form method=post action="b.jsp?test=<%=str_test %>"> 
18         
<input type="submit" value="按钮2">   
19 
</form>
20 
21
</body>
22
</html>

b.jsp

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
 2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 3
<html xmlns="http://www.w3.org/1999/xhtml">
 4
<head><title>B</title></head>
 5 
 6
<body>
 7 
 8
<% 
 
9       String str = new String(request.getParameter("test").getBytes("ISO8859_1"));
10
%> 
11 
<BR>
12 
<%=str %> 
13 
<BR>
14 
<% 
15       String str1 = new String(request.getParameter("test").getBytes("ISO8859_1"),"gb2312");
16
%> 
17 
<BR>
18 
<%=str1 %>
19
20
</body>
21
</html>
22

运行a.jsp,点击按钮1.

运行a.jsp,点击按钮1.

提交到b.jsp。

如果直接传中文呢?点击按钮2.


结果:

关键的问题在于每个页面中的 charset=gb2312;这个是页面显示中文的关键

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值