首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java处置url中的特殊字符

2012-12-22 
java处理url中的特殊字符java处理url中的特殊字符(如&,%...) URL(Uniform Resoure Locator,统一资源定位器

java处理url中的特殊字符

java处理url中的特殊字符(如&,%...) URL(Uniform Resoure Locator,统一资源定位器)是Internet中对资源进行统一定位和管理的标志。
一个完整的URL包括如下内容:
1.???????? 应用协议名称,包括http,ftp,file等标志
2.???????? 资源定位,是由(.)分割等网络路径
3.???????? 端口号,按照规定,http应用端口是80,telnet协议应用端口是23。
4.???????? 服务器中的文件路径
5.???????? 文件中的编码位置
一个完整的URL如下:
http://SomeUser:mypassword@www.some_server.com:8080/path/file.html
URL无法显示某些特殊符号,这个时候就要使用编码了。编码的格式为:一个百分号,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"。(ASCII参考)
有些字符在URL中具有特殊含义,基本编码规则如下:
特殊含义??????????????????????????????????????????????????????????? 十六进制值
1.+ 表示空格(在 URL 中不能使用空格)????????? %20
2./ 分隔目录和子目录????????????????????????????????????????????? %2F
3.? 分隔实际的 URL 和参数?????????????????????????????????? %3F
4.% 指定特殊字符??????????????????????????????????????????????????? %25
5.# 表示书签???????????????????????????????????????????????????????????? %23
6.& URL 中指定的参数间的分隔符??????????????????????? %26
java中URL 的编码和解码函数
java.net.URLEncoder.encode(String s)和java.net.URLDecoder.decode(String s);
在javascript 中URL 的编码和解码函数
escape(String s)和unescape(String s)

URL中文参数传递问题

(1)确定JSP页面头部是否有:<%@ page contentType="text/html; charset=GBK" %>
(2)用这个转码:
???? String param= new String(request.getParameter("param").getBytes("ISO-8859-1"), "GBK");
(3)添加filter字符过滤器

(4)如果是通过"test.jsp?param=中文"传递参数,则需要:
???? a.在传参数之前先把参数进行转码:java.net.URLEncoder.encode(param);
?????? 取值用java.net.URLDncoder.decode(param);再转回中文
???? b.在你的Tomcat目录-->conf目录-->server.xml里找出这段:
?????? <Connector
???????? port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
?????????????? enableLookups="false" redirectPort="8443" acceptCount="100"
?????????????? debug="0" connectionTimeout="20000"
?????????????? disableUploadTimeout="true" <!--在里边加上这个参数-->URIEncoding="gb2312"/>

热点排行