一尘不染

JSP表单编码

jsp

我有一个jsp页面(比如说page1.jsp),它具有带有action =“
page2.jsp”的html表单。在page1.jsp和page2.jsp中,我<%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>位于头部的外部和<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">头部。

如果我以这种形式写希腊字母,我会在url(get方法)中看到类似的内容
http://localhost:8080//addProblem.jsp?lastNameForm=%CF%84%CF%85%CE%B8%CF%84%CF%85%CE%B8%CF%84%CF%85&firstNameForm=&eMa ....

并从page2.Jsp中使用 <% out.println(request.getParameter("lastNameForm")); %>

我明白了,该αÏδαÏδ 怎么办?


阅读 282

收藏
2020-06-10

共1个答案

一尘不染

因此,您想GET使用UTF-8字符编码对请求参数进行URL解码。对于URL解码GET请求参数,您需要在服务器配置中设置字符编码。如何执行该操作取决于所讨论的服务器,最好是使用关键字
uri编码”
引用其文档。例如在Tomcat中,您需要URIEncoding在中<Connector>
为HTTP请求设置元素的属性server.xml,另请参阅文档:

<Connector (...) URIEncoding="UTF-8" />

HttpServletRequest#setCharacterEncoding()正如Bozho提到的,该方法仅适用于POST参数包含在请求正文中而不是URL中的请求。

有关更多背景信息和所有解决方案的详细概述,您可能会发现本文很有用。

2020-06-10