校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > JSP頁面間的傳值方法總結

JSP頁面間的傳值方法總結

熱門標簽:如何看懂地圖標注點 電銷機器人免培訓 給地圖標注得傭金 外呼系統使用方法 海外圖書館地圖標注點 南通通訊外呼系統產品介紹 自繪地圖標注數據 潤滑油銷售電銷機器人 電話機器人需要使用網絡嗎

前言

JSP 頁面間傳遞參數是項目中經常需要的,這應該算是 web 基本功吧。試著將各種方式總結下來,需要時可以進行權衡利弊選擇最合適的方式。下面來一起看看詳細的介紹:

1. URL 鏈接后追加參數

a href="next.jsp?paramA=AparamB=B..." rel="external nofollow" >URL 后面追加參數/a>

jsp:include page="next.jsp">jsp:param name="paramA" value="A"/>/jsp:include> 

jsp:forward page="next.jsp">jsp:param name="paramA" value="B"/>/jsp:forward> 

response.sendRedirect("next.jsp?paramA=AparamB=B...")

window.location = "next.jsp?paramA=AparamB=B..."

上述幾種代碼執行時都將攜帶參數跳轉到 next.jsp 頁面中。

在 next.jsp 頁面中獲取對應參數的方式如下:

//內嵌的 java 代碼
%String paramA = request.getParameter("paramA"); %>

//如果引入了 EL
{param.paramA}

優點:簡單性和多瀏覽器支持(沒有瀏覽器不支持URL)。

缺點:

   1)傳輸的數據只能是字符串,對數據類型和大小都有一定的限制;

   2)傳輸數據的值會在瀏覽器地址欄里面被看到,安全性等級低。

2. Form

 form action="next.jsp" method="post"> 
  input type="text" name="paramA" value="A"> 
  input type="hidden" name="paramB" value="B"> 
  input type="submit" value="提交"> 
 /form> 

在 next.jsp 頁面中獲取對應參數的方式與 (1)是類似的。

優點:

1)簡單性和多瀏覽器支持(同樣沒有瀏覽器不支持 form);

2) 可以提交的數據量比 URL 方式要大的多;

3)傳輸的值會在瀏覽器的地址欄中顯示出來,但是有一點黑手段的同樣能從頁面源碼中將參數列表構造出來;

缺點:

1)傳輸的數據也只能是字符串,對數據類型有一定的限制;

3. 設置 Cookie

用客戶端的認證憑證小小 Cookie 當然也能實現 JSP 頁面的傳值。

 % 
  Cookie c=new Cookie("paramA","A"); 
  c.setMaxAge(60*60); //cookie 有效期1分鐘
  response.addCookie(c); //將cookie 添加到 http響應中
  %>

想要在 next.jsp 頁面讀取 cookie,需要調用 request.getCookies() 方法來獲得一個javax.servlet.http.Cookie 對象的數組。

然后遍歷這個數組,使用getName()方法和getValue()方法來獲取每一個cookie的名稱和值。

//內嵌的 java 代碼
%
 Cookie cookie = null;
 // 獲取cookies的數據,是一個數組
 Cookie[] cookies = request.getCookies();
 if(cookies != null ){
  for (int i = 0; i  cookies.length; i++){
   cookie = cookies[i];
   out.print("參數名 : " + cookie.getName());
   out.print("br>");
   out.print("參數值: " + URLDecoder.decode(cookie.getValue(), "utf-8") +" br>");
   out.print("------------------------------------br>");
  }
 }else{
  out.println("h2>沒有發現 Cookie/h2>");
 }
%>

//EL 獲取方式
${cookie.paramA.value}

優點:

1)Cookie 的值能夠持久化,即使客戶端機器關閉,下次打開還是可以得到里面的值;

2) Cookie 可以幫助服務器端保存多個狀態信息,但是不用服務器端專門分配存儲資源,減輕了服務器端的負擔。

缺點:

1)雖然安全性相比 URL 和 Form 要提高了許多,但是也存在黑手段獲取客戶端 cookie,暴露客戶信息。

4. 設置 Session

個人認為 session 和 cookie 一個在服務端一個在客戶端。

在它們中添加鍵值對后,不僅僅是提供了頁面之間的傳遞,其實是一種數據共享的解決方案。

 %  
 session.setAttribute("paramA","A"); 
 response.sendRedirect("next.jsp"); 
 %>

想要在 next.jsp 讀取 session 的方法:

//內嵌java 片段
%=session.getAttribute("paramA") %>

//EL 獲取方式
{session.paramA}

Session 的優缺點可以參照 Cookie。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • ajax的json傳值方式在jsp頁面中的應用
  • JSP頁面間傳值問題實例簡析
  • JSP頁面傳值亂碼過濾方法

標簽:銅川 黃石 貸款邀約 廣州 樂山 內江 南京 大連

巨人網絡通訊聲明:本文標題《JSP頁面間的傳值方法總結》,本文關鍵詞  JSP,頁面,間的,傳值,方法,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《JSP頁面間的傳值方法總結》相關的同類信息!
  • 本頁收集關于JSP頁面間的傳值方法總結的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 荔浦县| 江安县| 双鸭山市| 凤冈县| 教育| 泾阳县| 永嘉县| 北碚区| 靖宇县| 武川县| 华阴市| 伊川县| 绥化市| 阳信县| 华宁县| 淮南市| 祁连县| 青阳县| 东乡族自治县| 汉川市| 衡水市| 宁海县| 马鞍山市| 凌源市| 普洱| 普兰店市| 行唐县| 泽库县| 筠连县| 鄂伦春自治旗| 会宁县| 平谷区| 华容县| 宁阳县| 辛集市| 阜阳市| 长汀县| 昭觉县| 民和| 信丰县| 余江县|