Проблема с jsp запрошенными параметрами в Tomcat - PullRequest
2 голосов
/ 24 августа 2011

Я без проблем создал проект JSP с netbeans 7.0 и tomcat 7.0.

Когда я экспортирую его в WAR-файл и разверную на моем сервере Tomcat, эта строка не будет работать:*

<% if (request.getParameter("submit").contains("اضافه")) { ...

но эти работают:

<% if (request.getParameter("emplist") != null) { ...

Как возникает эта проблема и как я могу ее решить?

Ответы [ 3 ]

5 голосов
/ 25 августа 2011

В 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>

Если вы хотите, чтобы URL кодировался для включения UTF-8, вам необходимо добавить URIEncoding="UTF-8" к вашему Tomcat Connector.

Найдите свой коннектор 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"
    />

Надеюсь, это поможет.

0 голосов
/ 30 ноября 2012

Вроде следующего. Вы также можете создать собственный класс фильтра для установки кодировки запроса в UTF-8

public class UnicodeFilter implements Filter {

    public void doFilter(ServletRequest req, ServletResponse res,
        FilterChain chain) throws IOException, ServletException {

        req.setCharacterEncoding("UTF-8");

        chain.doFilter(req, res);
   }
   public void init(FilterConfig config) throws ServletException {
     //Get init parameter
   }
   public void destroy() {
     //add code to release any resource
   }
}
0 голосов
/ 24 августа 2011

Версия развертывания Tomcat совпадает с версией разработки?

Это может быть связано с проблемой кодировки запроса.Вы должны установить кодировку UTF-8, либо вызвав setCharacterEncoding объекта HttpServletRequest, либо установив utf8 charset в своей форме.

...