酵素果冻对身体有害么:Tomcat 与JBoss动行效果为何不同?

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/07 05:11:55
index.jsp:
<%@ page contentType="text/html; charset=utf-8" %>
<%
String aa;
request.setCharacterEncoding("utf-8");
aa=request.getParameter("a");
if(aa==null)
{
aa="";
}
System.out.println("aa="+aa);
%>
<http>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<form action="" method="post">
<input type="text" name="a" value="<%=aa%>"/>
<input type=submit />
</form>
</body>
</http>

上面是index.jsp的原码,在tomcat运行时一切正常不是乱码,但在jboss中运行时乱码。
为什么?
这个问题其实可能通过修改jboss下tomcat的server.xml的connector的uriencoding属性来解决,你的方法可能是网上的大宗做法,却误导了大家。

Tomcat和Weblogic转到JBoss都会遇到这种问题,这是因为JBOSS中传递变量默认的字符集是ISO-8859-1。在server/default/deploy/jbossweb.sar目录下,修改org.mortbay.jetty.jar中的orgmortbayhttp下的HttpRequest.java
修改如下:
encoding=StringUtil.__GBK;
byte[]qbytes=query.getBytes(StringUtil.__GBK);
程序中添加如下代码:

public static String __GBK; // GBK
static
{
String GBK=System.getProperty("GBK");
if (GBK!=null)
__GBK=GBK;
else
{
try{
new String(new byte[]{(byte)20},"GBK");
__GBK="GBK";
}
catch(java.io.UnsupportedEncodingException e)
{
__GBK="GBK";
}
}
}

修改完,使用ant执行编译打包,替换掉JBOSS自带的org.mortbay.jetty.jar。

==============================

另:这是是宗教区,你发错地方了。我对Java的东西也不是很熟,希望这些能对你有所帮助,上帝保佑你!