URL传参不能直接传中文值,服务器会自动将其变为空值。
需要要将中文用URLEncoder.encode编码再传递
resp.sendRedirect(./admin/login/getPassword2_2.jsp?question="+URLEncoder.encode(question));
接收数据时,要将接收的数据进行
两次
String
question = URLDecoder.decode(question);解码,因为编码后的值在传递过程中,服务器又会对其进行一次编码,于是接收后需要两次解码。
案例:
GetPassword.java
String question = "武汉你好!";
resp.sendRedirect("./admin/login/getPassword2_2.jsp?question="+URLEncoder.encode(question));
getPassword2_2.jsp
String question = request.getParameter("question");
question =URLDecoder.decode(question) ;
question =URLDecoder.decode(question) ;