关于页面之间传参时有空格,中文及点击页面后退按钮的问题
今天心情不錯,解決了一些小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了。。
轉載于:https://www.cnblogs.com/java0721/archive/2011/12/09/2602765.html
總結
以上是生活随笔為你收集整理的关于页面之间传参时有空格,中文及点击页面后退按钮的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: throws与throw
- 下一篇: 结合领域驱动设计的SOA分布式软件架构