tomcat 中文问题.

Tomcat中文文件下载配置

Tomcat是Java开发者使用得较多的一个Web服务器,因为它占用资源小,运行速度快等特点,深受Java Web程序员的喜爱。不过,在使用中,由于Java中的中文问题的存在,如果不经过配置,在WEB程序中,不能直接支持具有中文文件名的文件的下载,这为Java Web程序的开发带来一定的不便。本文拟介绍一种手段,解决这个问题。

   解决问题的核心在于修改Tomcat的配置,在Server.xml文件中添加一个名为URIEncoding的属性,它用于对HTTP请求中的get方法传过来的URL进行编码。如果直接从Apache站点中下载Tomcat,无论是安装版的exe文件,还是解压缩的ZIP文件,内置的对于get协议中的URL编码都是ISO-8859-1,这个字符集不能直接支持中文等双字节的信息,而中文文件的下载链接恰恰是通过get协议进行的。以下说明修改Tomcat安装目录中的config文件夹中的server.xml文件的方法。

   打开config/server.xml文件,如果没有修改过这个文件,应该可以在其中找到如下代码:

   <Connector port="8080"  protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

   这段代码规定了Tomcat监听HTTP请求的端口号等信息,可以在这里添加一个属性:URIEncoding,将该属性值设置为UTF-8,即可让Tomcat不再以ISO-8859-1的编码处理get请求。更改后的代码如下所示(红色部分为新添加的代码):

  <Connector port="8080"

             URIEncoding="utf-8"

             protocol="HTTP/1.1"

             connectionTimeout="20000"

             redirectPort="8443" />


D:\apache-tomcat-9.0.37\bin>catalina.bat run Using CATALINA_BASE: "D:\apache-tomcat-9.0.37\" Using CATALINA_HOME: "D:\apache-tomcat-9.0.37\" Using CATALINA_TMPDIR: "D:\apache-tomcat-9.0.37\\temp" Using JRE_HOME: "D:\jdk11_jb51" Using CLASSPATH: "D:\apache-tomcat-9.0.37\\bin\bootstrap.jar;D:\apache-to cat-9.0.37\\bin\tomcat-juli.jar" NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED -add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport ALL-UNNAMED java.util.logging.ErrorManager: 4: Unable to create [D:\apache-tomcat-9.0.37" - catalina.home=D:\apache-tomcat-9.0.37"\logs] java.util.logging.ErrorManager: 4: Unable to create [D:\apache-tomcat-9.0.37" - catalina.home=D:\apache-tomcat-9.0.37"\logs] java.util.logging.ErrorManager: 4: Unable to create [D:\apache-tomcat-9.0.37" - catalina.home=D:\apache-tomcat-9.0.37"\logs] java.util.logging.ErrorManager: 4: Unable to create [D:\apache-tomcat-9.0.37" - catalina.home=D:\apache-tomcat-9.0.37"\logs] 04-Aug-2012 21:06:15.779 涓ラ噸 [main] org.apache.catalina.startup.Bootstrap.in tClassLoaders Class loader creation threw exception java.lang.IllegalArgumentException: The double quote ["] character can nly be used to quote paths. It must not appear in a path. This loader path is n t valid: ["D:\apache-tomcat-9.0.37" -Dcatalina.home=D:\apache-tomcat-9.0.37"/li ","D:\apache-tomcat-9.0.37" -Dcatalina.home=D:\apache-tomcat-9.0.37"/lib/*.jar" "D:\apache-tomcat-9.0.37/lib","D:\apache-tomcat-9.0.37/lib/*.jar"] at org.apache.catalina.startup.Bootstrap.getPaths(Bootstrap.jav :593) at org.apache.catalina.startup.Bootstrap.createClassLoader(Boot trap.java:170) at org.apache.catalina.startup.Bootstrap.initClassLoaders(Boots rap.java:144) at org.apache.catalina.startup.Bootstrap.init(Bootstrap.java:25 ) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:44 ) D:\apache-tomcat-9.0.37\bin>
最新发布
06-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值