serverlet與 jsp傳值

一、jsp -> serverlet

JSP頁面有3種方法向 servlet傳值: form表單、URL 、其他

二、serverlet -> jsp

(1) redirect方式

  request和response沒有傳給目標頁面

  response.sendRedirect("/a.jsp");

  頁面的路徑是相對路徑。sendRedirect可以將頁面跳轉到任何頁面,不一定侷限於本web應用中,如:

  response.sendRedirect("URL");跳轉後瀏覽器地址欄變化。

  這種方式要傳值出去的話,只能在url中帶parameter或者放在session中,無法使用request.setAttribute來傳遞。

  傳值:HttpSession session = request.getSession();

    session.setAttribute("bbbb", 1111111111);

  取值:session.getAttribute("bbbb");

  傳值:RequestDispatcher rd = application.getRequestDispatcher("/queryResult.jsp?a="+000);

  取值:request.getParameter("a")  

2) forward方式

  ServletContext application = this.getServletContext();//this是這個頁面

  RequestDispatcher rd = application.getRequestDispatcher("/目標頁面");

  rd.forward(request, response);

  Servlet頁面跳轉的路徑是相對路徑。forward方式只能跳轉到本web應用中的頁面上,跳轉後瀏覽器地址欄不會變化。

  使用這種方式跳轉,傳值可以使用三種方法:url中帶parameter,session,request.setAttribute

  傳值:request.setAttribute("a", 00);

  取值:request.getAttribute("a");

  傳值:HttpSession session = request.getSession();

    session.setAttribute("bbbb", 1111111111);

  取值:session.getAttribute("bbbb");

  傳值:RequestDispatcher rd = application.getRequestDispatcher("/queryResult.jsp?a="+000);

  取值:request.getParameter("a");

  getParameter只能傳遞字符串setAttribute/getAttribute可以傳遞對象 

  其次getParameter方法傳遞的數據,會從Web客戶端傳到Web服務器端,代表HTTP請求數據。   

  只能是頁面發送到後臺或者Web客戶端傳到Web服務器端


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章