群里一个小盆友写了两个 jsp,通过 jsp:forward 传参时总是乱码,而页面、tomcat 的编码都有设置,我一时激动就找了找解决办法
两个 JSP 分别如下:
- test1.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title<title>
<head>
<body>
<jsp:forward page="test2.jsp" >
<jsp:param name="name" value="你好"/>
<jsp:param name="age" value="111"/>
<jsp:forward>
<body>
<html>
- test2.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<%
String userName=request.getParameter("name");
String age=request.getParameter("age");
%>
<title>Title</title>
</head>
<body>
<%=userName%>
<%=age%>
test
上略当分阃
</body>
</html>
在 test2 中,使用 new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
没用,猜测是传输时的问题,于是 google 了以下 jsp:forward 传参乱码,看到解决办法是在 test1.jsp 种加上:
<% request.setCharacterEncoding("utf-8");%>
bingo!
ps. 事后被小盆友膜拜了一下,然而其实我感觉挺汗颜的个破问题找了十几分钟 😂
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于