日期:2014-05-16  浏览次数:20430 次

jsp超链接传递中文值的问题
利用表单传递中文参数,第一个页面是一个简单的html表单,点击之后访问02.jsp,
第二个页面会接收到第一个文本框传递的参数,然后利用超链接传给03.jsp,
第三个页面,会显示第二个页面传递的中文参数,然后确定。
这里在第二个页面利用超链接传递给第三个页面的时候,可以传递中文参数,
用到的是String类中的getByte方法,之前只知道在jsp页面可以设置request.setCharacterEncoding("gbk")可以
显示中文。不知道如何利用超链接传递中文
01.jsp
<html>
<head>
<title>01</title>
</head>
<body>
	<p>利用表单传递数据</p>
	<form action=02.jsp>
		你的姓名:<input type=text name=name ><br>
		你的爱好:<input type=text name=hobby ><br>
		你的行业:<select name="job">
					<option>&nbsp;</option>
					<option>学生</option>
					<option>IT行业</option>
					<option>商业</option>
					<option>制造业</option>
					<option>服务业</option>
				</select><br>
				<input type=submit name=submit value=提交>
				<input type="reset" name=reset value=重置>
	</form>
</body>
</html>



02.jsp
<%@ page language="java" contentType="text/html; charset=gbk"%>
<html>
<head>
<title>02</title>
</head>
<body>
<%	String name=request.getParameter("name");
	name=new String(name.getBytes("iso-8859-1"),"gbk");
	String hobby=request.getParameter("hobby");
	hobby=new String(hobby.getBytes("iso-8859-1"),"gbk");
	String job=request.getParameter("job");
	job=new String(job.getBytes("iso-8859-1"),"gbk");
%>
	你的姓名是:<%=name %><br>
	你的爱好是:<%=hobby %><br>
	你的工作是:<%=job %><br>
	
	<%session.setAttribute("name",name); %>
	<a href="03.jsp?hobby=<%=hobby%>&job=<%=job %>">提交</a>
</body>
</html>


03.jsp
<%@ page language="java" contentType="text/html; charset=gbk"%>
<html>
<head>
<title>03</title>
</head>
<body>
<%	String name=session.getAttribute("name").toString();
	String hobby=request.getParameter("hobby");
	hobby=new String(hobby.getBytes("iso-8859-1"),"gbk");
	String job=request.getParameter("job");
	job=new String(job.getBytes("iso-8859-1"),"gbk");
%>
	你的姓名是:<%=name %><br>
	你的爱好是:<%=hobby %><br>
	你的工作是:<%=job %><br>
	<b>确认要提交这些信息吗?</b>
	<form action=01.jsp>
		<input type=submit name=submit value=提交>
		<input type="reset" name=reset value=重置>
	</form>
	<%session.setAttribute("name",name); %>
	<%session.setAttribute("hobby",hobby); %>
	<%session.setAttribute("job",job); %>
</body>
</html>

第三个页面执行完毕之后跳转到第一个页面,并且文本框里面有之前传递的值