tomcat5.x问题集中解决

Servlet + Tomcat 中文乱码的原理:

因为 Java 的 .class 文件使用的是 Unicode 编码,而 Windows 2000 操作系统和浏览器使用的是 GBK(GB2312编码的扩展)编码,所以要更该配置文件显式指定浏览器的编码格式。
更为详细的说明请参见http://blog.csdn.net/abnerchai/archive/2004/04/28/javacnproblemup.aspx
Servlet + Tomcat 中文乱码的解决方法
a) 更改 C:/JavaSoft/Tomcat5.5/conf/server.xml,指定浏览器的编码格式为“简体中文”:
方法是找到 server.xml 中的
<Connector port="9111" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding=´GBK´ />
标记,粗体字是我添加的。
可以这样验证你的更改是否成功:
在更改前,在你出现乱码的页面的IE浏览器,点击菜单“查看|编码”,会发现“西欧(ISO)”处于选中状态。而更改后,点击菜单“查看|编码”,会发现“简体中文(GB2312)”处于选中状态。
b)更该 Java 程序,我的程序是这样的:
public class ThreeParams extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html; charset=GBK");
...
}
}
粗体字是必需要有的,它的作用是让浏览器把Unicode字符转换为GBK字符。
这样页面的内容和浏览器的显示模式都设成了GBK,就不会乱码了。

我在配置开发环境(JDK1.5+Tomcat5.5.4+Eclipse3.1)时碰到的3个问

1、问题:用打开带Java小程序的页面,在Java小程序的地方显示一灰色区块,
当鼠标移动到该区块时,状态栏提示:
load:class XXXXX not found

解答:参考http://www.cryer.co.uk/brian/java/help_classnotfound.htm

2、问题:在Eclipse中执行,报Could not find the main class.Program will exit.
console窗口:
java.lang.ExceptionInInitializerError
Caused by: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: java.lang.NullPointerException (Caused by java.lang.NullPointerException) (Caused by org.apache.commons.logging.LogConfigurationException: java.lang.NullPointerException (Caused by java.lang.NullPointerException))
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:543)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351)
at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:53)
Caused by: org.apache.commons.logging.LogConfigurationException: java.lang.NullPointerException (Caused by java.lang.NullPointerException)
at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:397)
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)
... 4 more
Caused by: java.lang.NullPointerException
at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:374)
... 5 more
Exception in thread "main"

解答:
Possible solution:
I edited the file "tomcat50x.server" under
C:/eclipse/plugins/com.objectlearn.jdt.j2ee_3.0.1/servers
and changed
-Djava.endorsed.dirs="${serverRootDirectory}/bin;${serverRootDirectory}/common/endorsed"
to
-Djava.endorsed.dirs="${serverRootDirectory}/common/endorsed"
in the following ´tags´:
<startVmParameters>-DJAVA_HOME="${jrePath}" -Dcatalina.base="${serverRootDirectory}" -Dcatalina.home="${serverRootDirectory}" -Djava.io.tmpdir="${serverRootDirectory}/temp" -Djava.endorsed.dirs="${serverRootDirectory}/bin;${serverRootDirectory}/common/endorsed"</startVmParameters>
and
<stopVmParameters>-DJAVA_HOME="${jrePath}" -Dcatalina.base="${serverRootDirectory}" -Dcatalina.home="${serverRootDirectory}" -Djava.io.tmpdir="${serverRootDirectory}/temp" -Djava.endorsed.dirs="${serverRootDirectory}/bin;${serverRootDirectory}/common/endorsed"</stopVmParameters>
This matches the value used in my catalina.bat file when lauched from the command prompt.

3、问题:修改.java ,重新编译生成.class后,IE刷新,但Applet的内容还是旧的。

解答:刷新时按住CTRL键试试。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值