在java中重定向可以使用response.sendRedirect("http://XXX")进行重定向,即可定向到页面(JSP,HTML),也可定向到某个action(XX.do);定向时还能附带参数传递,如sendRedirect("name.jsp?userId=Joe&userAge=30");

关于参数的传递,在URL跳转时可能出现以下问题:


1.url传递特殊字符参数时出错,如 ”+“被替代为空格” “,这种情况经常会出现在参数被加密(BASE64)后.

解决方法:对参数中特殊字符进行必要的编码

java中:infoStr.replace("+", "%2B")

JS中:escape(infoStr).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27').replace(/\//g,'%2F');

综上,即url里有如下四个特殊字符时:(1)加号:+    (2)双引号:"    (3)单引号:'    (4)斜杠:/时,既要进行特殊处理。


2.参数字符串带有换行时,传递后同样会被添加换行编码

解决方法:如果参数无需换行,则传递前可先去掉换行,如:

infoStr.replaceAll("\r|\n", "")