1、页面代码:
<td>身份:
<select name="roleid" id="roleid">
<option value="0" >全部</option>
<option value="1" >学生</option>
<option value="3" >老师</option>
<option value="4" >管理员</option>
</select>
</td>
2、后台servlet接收参数:
String roleid= request.getParameter("roleid"); //roleid值为空字符串
3、web.xml有一个编码过滤器:
<filter>
<filter-name>setencodingfilter</filter-name>
<display-name>SetEncodingFilter</display-name>
<filter-class>cn.util.SetEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
</filter>
4、过滤器代码:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws ServletException, IOException
{
if(ignore || request.getCharacterEncoding() == null)
{
String encoding = selectEncoding(request);
if(encoding != null)
// System.out.println("过滤前roleid的值可正常获取----->>>>>>"+request.getParameter("roleid"));
request.setCharacterEncoding(encoding);
// System.out.println("过滤后roleid的值----->>>>>>"+request.getParameter("roleid"));
response.setContentType("text/html; charset=\""+encoding+"\"");
}
chain.doFilter(request, response);
}
5、现象:select标签中value值如果是'1','2','3'这种单个字符,后台接收到的roleid为空字符串;如果value值为'11','22','33'等多字符,后台能正常接收。
之前tomcat5.5.33/6.0.20 均能正常使用,换成tomcat6.0.35就这样了
6、解决:
将web.xml中的encoding改成更标准的GB18030
参考自:http://blog.csdn.net/rainbow0101/article/details/7098181
分享到:
相关推荐
tomcat 6.0.35
tomcat6.0.35快速配置JSP网站,解压即可使用,内附教程
apache-tomcat-6.0.35和apache-tomcat-6.0.35 src,很全的!希望对大家的学习有帮助!
apache-tomcat-6.0.35
tomcat6源码JAVA应用
tomcat源码,已经使用ant编译,导入jar包即可编译
tomcat各个版本,tomcat6.0.35,tomcat7.0.41,tomcat7.0.96,tomcat8.5.45,总有一款适合你。
apache-tomcat-6.0.35后台开发web部署所得税的发生的范德萨
apache-tomcat-6.0.35.tar.gz 资源下载,亲测好用!
apache-tomcat 6.0.35-src.tar.gz
apache-tomcat-6.0.35.rar tocmat 6的版本
linux apache-tomcat-6.0.35.tar.gz
64位apache-tomcat-6.0.35-windows-x64