tomcat中文链接地址设置

本文介绍了解决Tomcat因默认使用ISO-8859-1编码导致无法正确解析含有中文的URL的问题。通过配置<Connector>标签的URIEncoding属性为UTF-8,可以确保含有中文字符的URL被正确解析。
摘要由CSDN通过智能技术生成

问题描述:

Tomcat默认情况下通过ISO-8859-1编码格式对所有请求的URL进行编码,因此,当某个URL中包含中文路径名称或文件名称时,

    如请求:http://localhost:8080/pro/中文名称.html

Tomcat会无法正确解析和获取该URL地址,而引发HTTP 404错误。

解决办法:

    在tomcat-->conf-->server.xml文件中 ,指定HTTP Connnector的URIEncoding="utf-8"

:

<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/>

URIEncoding属性具体指定了tomcat用来对URI进行解码的字符编码格式,如果省略该字段,默认情况下tomcat会使用ISO-8859-1编码格式来对URI进行解码。

补充:

除了用URIEncoding来指定URI的解码格式外,利用<Connector>标签的的useBodyEncodingForURI 属性同样也可以达到同样的效果,

该字段指定是否可以用请求中的contentType字段中的编码格式来对URI进行编码。这个设置主要是为兼容4.1.x版本的tomcat

因为该版本的tomcat是使用HTTP头中contentType字段指明的编码格式或通过Request.setCharacterEncoding 方法指明的编码格式来对URI进行编码

转载于:https://my.oschina.net/hmj/blog/53314

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值