java web中url理解

最近在看许令波的《深入分析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");

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值