tomcat中jsp请求的参数存在问题
我已经用netbeans 7.0和tomcat 7.0创建了一个JSP项目,没有问题 当我将其导出到WAR并将其部署到Tomcat服务器时,这一行行不通:tomcat中jsp请求的参数存在问题,jsp,unicode,tomcat7,Jsp,Unicode,Tomcat7,我已经用netbeans 7.0和tomcat 7.0创建了一个JSP项目,没有问题 当我将其导出到WAR并将其部署到Tomcat服务器时,这一行行不通: <% if (request.getParameter("submit").contains("اضافه")) { ... 部署tomcat版本与开发版本相同吗 这可能与请求编码问题有关。您应该通过调用HttpServletRequest对象的setCharacterEncoding或通过在表单中设置utf8字符集来将编码设置为UT
<% if (request.getParameter("submit").contains("اضافه")) { ...
部署tomcat版本与开发版本相同吗
这可能与请求编码问题有关。您应该通过调用HttpServletRequest对象的setCharacterEncoding或通过在表单中设置utf8字符集来将编码设置为UTF-8。在
TOMCAT\u 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>
我希望这有帮助。像下面这样。您还可以创建自定义筛选器类,将请求的编码设置为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
}
}
你说“不起作用”是什么意思。JSP不编译吗?如果是,错误信息是什么?它可以编译,但不执行您认为应该执行的操作?到底发生了什么,您如何运行它?它不会返回任何错误!!似乎没有请求的参数或if语句存在!在if测试之前,包括一些日志语句:System.out.println(“parameter=[”+request.getParameter(“submit”)+“]”);System.out.println(“参数=[“+”اضاه“+”]);看看,你真的有这个参数,如果它真的包含这个字符串。您可以显示字符的所有数字值以真正确保。当通过netbeans部署它时,一切都正常!但是,当在dist目录中部署netbeanside甚至Eclipse(导入到它之后)创建的web存档时,我发现了这个问题!我也做那个测试!!在第页上可以打印,但:未打印!!我将波斯语(unicode)单词(“اضافه”)改为“添加”,但什么也没发生!你说得对!够了!?或者不是!不,这还不够。您应该将其设置为要发布的表单。
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
URIEncoding="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
}
}