关于页面之间传参时有空格,中文及点击页面后退按钮的问题
2011-12-09 17:03
363 查看
今天心情不错,解决了一些小bug,然后要进行下小总结了。。。。。
首先说这页面间传参,有时传的参数是带有空格的比如一小部分sql语句,怎么办呢?
两种解决方案:1.当进行form表单提交时,用隐藏术 2.当页面跳转时,即href .可用java方法:java.net.URLEncoder。
第一种方法是在页面中,加个隐藏域,如加上<input type="hidden" name="SearchCondition" id="SearchCondition" value="">
然后,在进行提交之前,用document.getElementById("SearchCondition").value="ss ss";或者
$("#SearchCondition").attr("value",“ss ss”);
第二种方法:
urlEncoded = java.net.URLEncoder.encode(szSearchCondition);
然后吧,<a href="XXX.jsp?page=<%=iPage+1%>&SearchConditionSelf=<%=urlEncoded%>"
就可以了。
再说接收端:
接收端对于上述两种情况,用普通的getParameter("")就可以了。。因为虽然第二种方法用了编码,但浏览器会自动帮我们解码的。。。
但接收端还要是分情况,主要针对有没有中文的情况:
如果没有中文,或者是有中文,但原form用的post方式提交,都可以直接用getParamter方式来接收。
巧的是,有中文,原form还必须要用get方式提交,这就得进行编码转换了,注意,我说的是编码转换,不是解码。
szSearchCondition = request.getParameter("SearchCondition");
if(szSearchCondition != null){
try{
szSearchCondition = new String(szSearchCondition.getBytes("iso-8859-1"),"gb2312");
}catch(Exception e){
e.printStackTrace();
}
}
原因很简单,在浏览器上传值用的都是latin1即iso-8859-1来传的。
Over了吧。。。但你可能会问我什么一定要用get,原因是这样:
当用post时,发现页面跳转之后,再点击浏览器的后退按钮,会出现已过期的不和谐情况。。。而用get呢,就ok了。。
首先说这页面间传参,有时传的参数是带有空格的比如一小部分sql语句,怎么办呢?
两种解决方案:1.当进行form表单提交时,用隐藏术 2.当页面跳转时,即href .可用java方法:java.net.URLEncoder。
第一种方法是在页面中,加个隐藏域,如加上<input type="hidden" name="SearchCondition" id="SearchCondition" value="">
然后,在进行提交之前,用document.getElementById("SearchCondition").value="ss ss";或者
$("#SearchCondition").attr("value",“ss ss”);
第二种方法:
urlEncoded = java.net.URLEncoder.encode(szSearchCondition);
然后吧,<a href="XXX.jsp?page=<%=iPage+1%>&SearchConditionSelf=<%=urlEncoded%>"
就可以了。
再说接收端:
接收端对于上述两种情况,用普通的getParameter("")就可以了。。因为虽然第二种方法用了编码,但浏览器会自动帮我们解码的。。。
但接收端还要是分情况,主要针对有没有中文的情况:
如果没有中文,或者是有中文,但原form用的post方式提交,都可以直接用getParamter方式来接收。
巧的是,有中文,原form还必须要用get方式提交,这就得进行编码转换了,注意,我说的是编码转换,不是解码。
szSearchCondition = request.getParameter("SearchCondition");
if(szSearchCondition != null){
try{
szSearchCondition = new String(szSearchCondition.getBytes("iso-8859-1"),"gb2312");
}catch(Exception e){
e.printStackTrace();
}
}
原因很简单,在浏览器上传值用的都是latin1即iso-8859-1来传的。
Over了吧。。。但你可能会问我什么一定要用get,原因是这样:
当用post时,发现页面跳转之后,再点击浏览器的后退按钮,会出现已过期的不和谐情况。。。而用get呢,就ok了。。
相关文章推荐
- 关于页面之间传参时有空格,中文及点击页面后退按钮的问题
- 解决登出系统清空session后,点击后退按钮显示原页面信息的问题
- 关于页面之间传递参数为中文问题
- 关于jsp之间href传参(中文)乱码问题
- 解决jsp页面之间,jsp和后台之间传参中文乱码问题
- 解决页面之间相互传参中文乱码问题(收集)
- 禁用页面缓存。目的:用户登录后退出。点击浏览器后退按钮造成的问题
- 解决点击浏览器后退按钮页面过期的问题
- 禁用页面缓存。目的:用户登录后退出。点击浏览器后退按钮造成的问题
- jsp页面之间跳转传参及中文乱码问题
- javascript+Struts2解决退出清空session以后,点击后退按钮显示原页面信息的问题
- 关于showModalDialog()对话框点击按钮弹出新页面的问题
- 关于点击按钮后页面自动刷新的问题
- 关于php如何在页面之间传递参数的问题
- JS中页面与页面之间超链接跳转中文乱码问题的解决办法
- asp.net 退出登陆(解决退出后点击浏览器后退问题仍然可回到页面问题)
- ios关于点击事件selector传参的问题,看似简单却容易混淆(已解决)
- 关于jsp页面中显示中文图片问题
- 关于使用Android installer安装应用,安装好之后点击“打开”按钮进入应用之后的界面显示问题
- 关于点击按钮刷新问题