URL特殊字符必须转义
1、空格改为加号
2、用斜线(/)将目录和子目录分开
3、问号(? )分隔URL和查询
4、百分号(% )制定特殊字符
5、#编号书签
6、编号分隔符参数
转义字符原因:
如果您的表单是使用get方法提交的,并且提交的参数中有特殊符号(如“”),则如果不进行处理,服务器将后续参数视为其他参数。 例如
表单的action是list.jsf吗? act=gostate=5
提交时,可以在request.getParameter中分别获取act和state的值。
如果您的本意是字符串act='gostate=5',则必须转义才能在服务端获取act的准确值
url转义字符原理:
将这些特殊字符转换为ASCII代码,格式为%加上字符,即百分比符号%,后跟相应字符的ASCII (十六进制)代码值。 例如,空间的编码值为“”。
URL特殊符号和相应的十六进制值编码:
1. URL中的符号表示空格
2 .空间URL的空间可以用号码或代码指定
3./将目录与子目录分开/
4 . 是否要分隔实际的URL和参数?
5.%指定特殊字符%
6.#表示书签#
7 .在URL中指定的参数之间的分隔符&;
8.=在URL中指定的参数的值=
解决方法如下(以编号为例) :
丰富的凉面,修改客户端,将客户端带“”的参数中的“”全部替换为“2b%”,从而在参数传递到服务器端时得到“”。
jddws,只有在参数中包含“”且没有空间时,修改服务器端并将空间替换为“”的方法才适用。
示例:
stringa=reuqest.getparameter (' clientstr ' ) .replace (',' );
如果客户端为clientStr=test OK,则a的值为test OK;
方法三、修改服务器端,将获取参数的方法从reuqest.getParameter改为request.getQueryString ().substring(0) ),解析得到的字符串。
示例:
Stringa=request.getQueryString ().substring(0) ) 0;
如果客户端为clientStr=test OK,则a的值为clientStr=test OK,需要再次分析。
a=a.substring(10; 得到的a的值为test OK。
附件:用于转义URL中特殊字符的JS。
是函数urlencode (sstr )
{
returnEscape(sstr ).replace(/g,' ').replace(/g,' ')/g,'''') ) ) replace
}