在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", "")