jsp在tomcat中请求参数的问题

Sas*_*lat 2 unicode jsp tomcat7

我已经用netbeans 7.0和tomcat 7.0创建了一个JSP项目,没有任何问题.

当我将它导出到WAR并将其部署到我的Tomcat服务器时,此行不起作用:

<% if (request.getParameter("submit").contains("?????")) { ...
Run Code Online (Sandbox Code Playgroud)

但这些有效:

<% if (request.getParameter("emplist") != null) { ...
Run Code Online (Sandbox Code Playgroud)

这个问题是怎么造成的,怎么解决?

Buh*_*ndi 5

TOMCAT_HOME/conf/web.xml,您可以添加过滤器以启用UTF-8字符编码

添加以下内容:

<filter>
    <filter-name>setCharacterFilter</filter-name>
    <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
        </init-param>
    <init-param>
        <param-name>ignore</param-name>
        <param-value>false</param-value>
        </init-param>
</filter>
<filter-mapping>
    <filter-name>setCharacterFilter</filter-name>
    <url-pattern>*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)

如果要将URL编码为包含UTF-8,则必须向URIEncoding="UTF-8"Tomcat连接器添加a .

找到您的HTTP连接器(TOMCAT_HOME/conf/server.xml通常可以找到8080分配的端口)并添加URIEncoding如上所示的属性,如下所示:

<Connector port="8080" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true"
               URIEncoding="UTF-8"
    />
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助.