java web中url理解

本文详细解析了URL的组成部分,包括域名、端口号、上下文路径等,并探讨了URL编码和解码的方法及其在Tomcat服务器配置中的实现。此外,还介绍了如何在JSP页面中处理中文字符的编码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在看许令波的《深入分析java web技术内幕》看到url的编解码时深有感触,现记录如下:

1、首先分析一下url的组成

http://localhost:8080/examples/servlet/小二?name=小二

localhost是域名,8080为端口号,examples是contextPath,servlet是servletpath,小二是pathinfo,后面的参数为querystring

2、相关的配置文件

端口号port在tomcat的<Connector port="8080" /> 中配置,contextPath在<ContextPath="/examples" />中配置 servletPath在web对应的

web.xml的<url-pattern>中配置Pathinfo是我们具体请求的servlet,Querypath是要传递的参数。

3.url的编解码问题

对url的uri(同一资源标识符)部分进行解码的是在connector的<Connector URIEncoding="UTF-8"/>中定义的,如果要用head中的Context定义的

Charset对queryString进行解码需要将connector的<Connector URIEncoding="UTF-8"  useBodyEncodingForURI="true" />中的useBodyEncodingForURI的值设为true,他仅仅是对querystring进行解码而不是整个uri。使用不同的方式解码是因为浏览器对pathinfo和querystring进行了不同方式的编码

4.jsp页面内对接收或发送中文进行编解码

request.setCharacterEncoding()是你设置获得数据的编码方式。
response.setCharacterEncoding()是你响应时设置的编码。
response.setContentType()是设置你响应时的MIME及编码。

如果tomcat中设置了uri的解码格式为UTF-8,那么在jsp页面上添加request.setCharacterEncoding("UTF-8");就可以解决中文乱码问题了

设置响应模式

response.setContentType("text/html;charset=UTF-8");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值