使用jsp:forward转发到另一个jsp页面时,两个页面的page指令设置相同,都为<%@page contentType="text/html;charset=GBK"%>.
转发页面代码如下:
<%@page contentType="text/html;charset=GBK"%>
<jsp:forward page="pageforward02.jsp">
<jsp:param name="name" value="张三" />
<jsp:param name="id" value="220302" />
</jsp:forward>
转发目标页面pageforward02.jsp代码如下:
<%@page contentType="text/html;charset=GBK"%>
<%
request.setCharacterEncoding("GBK");
String name = (String)request.getParameter("name");
String id = (String)request.getParameter("id");
%>
<h1>姓名:<%=name%></h1>
<h1>id号:<%=id%></h1>
但在转发页面取数据的时候乱码,对转发目标页面做了如下两种方式处理
第一种:request.setCharacterEncoding("GBK");
第二种: String name = (String)request.getParameter("name");
name = new String(name.getBytes("ISO-8859-1"),"GBK");
结果还是乱码。转发面和目标页前加上如下代码,可正常显示:
<%
request.setCharacterEncoding("GBK");
%>