第一个页面传递给第2个页面时候,第2个页面接收的第一个页面信息中文的都乱码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'testVoteAdd.jsp' starting page</title> </head> <body> <form action="testVoteAdd2.jsp" method="post"> voteName:<input type="text" name="voteName" /><br> voteType:<input type="radio" name="voteType" value="1"/>单选 <input type="radio" name="voteType" value="2"/>多选<br> voteOptionNum:<input type="text" name="voteOptionNum" /><br> <input type="submit" value="Submit"> </form> </body> </html>
Java code?<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String voteName = request.getParameter("voteName"); String voteType = request.getParameter("voteType"); int voteOptionNum = Integer.parseInt(request.getParameter("voteOptionNum")); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'testVoteAdd2.jsp' starting page</title> </head> <body> <form action="TestVoteAddServlet" method="post"> <input type="hidden" name="voteName" value="<%=voteName%>" /> <input type="hidden" name="voteType" value="<%=voteType%>" /> <input type="hidden" name="voteOptionNum" value="<%=String.valueOf(voteOptionNum)%>" /> <table width="80%" border="1" cellpadding="5"> <tr> <th colspan="2"><%=voteName%></th> </tr> <%for (int i = 0; i < voteOptionNum; i++){%> <tr><td>选项<%=i + 1%></td><td><input type="text" name="voteOption<%=i%>" /></td></tr> <%}%> </table> <input type="submit" value="Submit"> </form> </body> </html>
拆分成两个网页也是这样,如上。
项目编码UTF-8
pageEncoding是对页面信息进行编码,而setCharactrEncoding是对页面之间的参数进行编码。
pageEncoding设置对参数传递不起作用的。不同的浏览器向服务器发送的信息采用的编码方式不同,索引要设置request.setCharacterEncoding。
页面发送的数据也是字符,需要指定字符集的
pageEncoding是对页面信息进行编码,而setCharactrEncoding是对页面之间的参数进行编码。