日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
淺談JSP的Forward及sendRedirect方法

Response.sendRedirect是兩個不同的request,是在客戶端跳轉(zhuǎn),瀏覽器顯示的是跳轉(zhuǎn)后的頁面的名字。因為它是從客戶端跳轉(zhuǎn)到第二個頁面的。

使用forward時,由于只是發(fā)送一次request請求,request設置的屬性(setAttribute)依然能保留在下一個頁面。

使用sendRedirect時,由于發(fā)送兩次request請求,所以在下一個不能獲取request屬性。但可以通過重寫URL的方式

內(nèi)容傳遞過去。

下面舉例說明:


tian.jsp    
<%request.setAttribute( "river", "redwater");
request.setAttribute( "country", "daguaiwan");
%>
"fengshan.jsp" />
  donglan.jsp    
<%request.setAttribute( "river", "redwater");
request.setAttribute( "country", "daguaiwan");
%>
"fengshan.jsp">fengshan
  bama.jsp    
<%request.setAttribute( "river", "redwater");
request.setAttribute( "country", "daguaiwan");
response.sendRedirect( "fengshan.jsp");
%>
  fengshan.jsp
<%=request.getAttribute( "river")%>

<%=request.getAttribute( "country")%>
 

   
   
   
   
  1. http://localhost:8080/ForwardRedirect/tiane.jsp 跳轉(zhuǎn)后結果為:  
  2. redwater  
  3. daguaiwan  
  4.    
  5. http://localhost:8080/ForwardRedirect/donglan.jsp 跳轉(zhuǎn)后結果為:  
  6. null  
  7. null  
  8.    
  9. http://localhost:8080/ForwardRedirect/bama.jsp 跳轉(zhuǎn)后結果為:  
  10. null  
  11. null 

結果分析: tiane.jsp是通過forward跳轉(zhuǎn)到fengshan.jsp的,這兩個頁面享用的是同一個request,故fengshan.jsp可以接收到tiane.jsp通過 request設置的屬性。而donglan.jsp是通過href發(fā)送了另外的request請求,bama.jsp是通過sendRedirect跳轉(zhuǎn),用的也是另外的request請求,故fengshan.jsp不可以接收到這兩個頁面通過 request設置的屬性。 Jsp和Servlet之間的跳轉(zhuǎn):從Jsp跳轉(zhuǎn)Servlet可以使用或者response.sendRedirect(URL)都可以,它們之間的區(qū)別上面已經(jīng)說明了。 從Servlet跳轉(zhuǎn)Jsp: getRequestDispatcher的forward(request, response)方法,這里也只是發(fā)送了一次請求,可以在下一個頁面接受request設置的屬性。 2 response.sendRedirect(URL),這里發(fā)送了兩次請求,不可以在下一個頁面接受request設置的屬性。

例子如下: servlettiane.jsp 

    
    
    
    
  1. <%request.setAttribute("river","redwater");   
  2.     request.setAttribute("country","daguaiwan");   
  3. %>   
  4.  page="/tiane" />   
  5.  
  6. servletbama.jsp      
  7. <%request.setAttribute("river","redwater");   
  8.     request.setAttribute("country","daguaiwan");   
  9.     response.sendRedirect("/ForwardRedirect/tiane");   
  10. %>  

Tiane.java

    
    
    
    
  1. public class Tiane extends HttpServlet {   
  2.  
  3.   public void doGet(HttpServletRequest request, HttpServletResponse response)   
  4.       throws ServletException, IOException {   
  5. //    response.sendRedirect("/ForwardRedirect/fengshan.jsp");   
  6.     this.getServletConfig().getServletContext()   
  7.             .getRequestDispatcher("/fengshan.jsp").forward(request, response);   
  8.   }   
  9.  
  10.   public void doPost(HttpServletRequest request, HttpServletResponse response)   
  11.       throws ServletException, IOException {   
  12.     doGet(request, response);   
  13.   }      
  14. }  

再在web.xml中配置servlet:  

    
    
    
    
  1.    
  2.   tiane   
  3.   com.dvnchina.test.Tiane   
  4.      
  5.      
  6.   tiane   
  7.   /tiane   
  8.   

具體的結果我就不分析了,和第一個例子差不多的。代碼見附件。

【編輯推薦】

  1. 淺析JSP HTTP服務器支持CGI
  2. 使用JSP頁面生成PDF報表
  3. JSP自定義標簽定義步驟
  4. 詳解測試JSP容器
  5. 介紹JSP HTTP服務器實現(xiàn)的以下特性

網(wǎng)站標題:淺談JSP的Forward及sendRedirect方法
文章源于:http://www.dlmjj.cn/article/djjejhc.html