javaWeb如何轉發數據,jsp頁面如何接收?


1.情景展示

  現在有一個需求就是:請求達到服務器后,服務器需要將請求的數據傳給另一個頁面,如何實現?   

2.目標分析

  通過服務器跳轉到頁面上,有兩種實現方式:一種是轉發,一種是重定向。

  我們知道轉發可以攜帶數據,而重定向無法攜帶數據,所以,要想攜帶數據跳轉頁面,必須通過轉發實現。 

3.解決方案

  通過request對象的setAttribute()傳值給頁面;頁面通過getAttribute()取值。

  請求地址

  http://localhost:8070/demo2/dispatcher.do?userName=%25E7%2594%25A8%25E6%2588%25B7%25E5%2590%258D&password=pwd

// 告訴瀏覽器以utf-8的字符集來解析success.jsp
response.setCharacterEncoding("utf-8");
// 用戶名
String userName = request.getParameter("userName");
// tomcat服務器,會自動解碼一次,這里需要再解碼一次(userName總共編碼了兩次)
userName = URLDecoder.decode(userName,"utf-8");
// 密碼
String password = request.getParameter("password"); 
// 轉發頁面時需要攜帶的數據
request.setAttribute("userName", userName);
request.setAttribute("password", password);
// 跳轉到success.jsp(瀏覽器的地址欄不會發生變化)
request.getRequestDispatcher("/success.jsp").forward(request, response);

  頁面取值的兩種方式:

  1.通過EL表達式獲取;

${屬性名}

  2.通過小腳本獲取。

<%=request.getAttribute("屬性名")%>

4.效果展示

  說明:

  頁面通過request對象取值的方法,只能在jsp中實現,因為:jsp的本質是servlet,而servlet屬於java語言,所以jsp可以直接使用request對象,進而能夠取值。

  相應的,如果你轉發的是一個html文件,那么不好意思,你將無法獲取到request對象攜帶的數據。

寫在最后

  哪位大佬如若發現文章存在紕漏之處或需要補充更多內容,歡迎留言!!!

 相關推薦:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM