打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
tomcat 的get方法编码问题
       tomcat 的get方法编码问题
最近在用eclipse测试一个小的web程序的时候发现了tomcat的get方法的编码问题

我做了两个页面,一个index.jsp,一个response.jsp,两个页面都用的是utf-8编码,index.jsp页面有一个表单

index.jsp的内容如下:
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>

<body>
<form name="form1" method="Get" action="response.jsp">
  <p>请输入用户名:
    <input type="text" name="stu">
</p>
  <p>
    <input type="submit" name="Submit" value="提交">
</p>
</form>
</body>
</html>
response.jsp的内容如下:
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>

<body>
<%
String name=request.getParameter("stu");
out.println(name);
%>
</body>
</html>
这样在tomcat上运行response.jsp页面打印出来的内容总是乱码,整了一个过滤器也没有作用,后来上网查了一下,发现是需要在server.xml文件中配置的。

找到server.xml中<Connector
        port="8080"
在后面加上URIEncoding="UTF-8"属性

再次运行tomcat,response.jsp页面的乱码才改正过来.

这样设置的时候,将index.jsp中的method改为post后,response.jsp中打印出来的仍然是乱码

要解决这个乱码就需要整个过滤器了,tomcat的servlet例子有一个过滤器SetCharacterEncodingFilter.java,将其在web.xml注册一下,然后再次运行的时候就没有乱码了

综上,在用tomcat开发的,遇到中文的时候要注意几个方面
1.页面采用统一的编码,建议是UTF-8,这个对国际化支持的比较好

2.一般情况,用post方法,然后设置一个过滤器,就可以解决乱码,这个比较通用,在多数服务器都可以运行

3.采用get方法的时候需要设置server.xml,如果应用中get,post都有,最好是既要设置server.xml.又要配置一个过滤器

4.本人试了resin3.10,jetty6.0,两个服务器,就没有这个问题,只要把页面都设为utf-8,就可以了

另外随便说一下,resn3.0.8不支持jdk1.5.0以后的版本,要用jdk1.4

tomcat6.0也没有解决这个问题。有必要用用其他的服务器了.



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
JAVA中文字符编码乱码详述(非常全,详细,从文件编码,编译说起)
JSP中contentType的charset和pageEncoding区别|编程程序
乱码问题总结
JSP中的pagaEncoding和contentType中charset的区别
JSP HTML JAVASCRIPT 中文乱码 解决方案 大全
JSP\HTML\JAVA\SERVLET中编码统一为UTF-8解决中文乱码问题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服