<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 37, comments - 8, trackbacks - 0, articles - 0

    request之請求轉發

    Posted on 2008-10-19 14:36 夢與橋 閱讀(7163) 評論(2)  編輯  收藏 所屬分類: jsp程序設計
    屬于同一個Web應用程序的JSP或Servlet可以使用javax.servlet.RequestDispatcher接口的forward方法和include方法來共享數據。
        §RequestDispatcher rd=request.getRequestDispatcher(String path):取得一個相對于當前路徑的請求轉發器,以便于請求轉發。
         §void forward(ServletRequest request, ServletResponse response):用于將一個請求從一個JSP或servlet轉發到同一服務器上的另一個JSP或servlet。
        §void include ():用于包括另一個Servlet的內容。

    1、利用forward()方法作轉發控制
    (包括請求頁面a0.jsp、接受請求的頁面a1.jsp和轉發到頁面a2.sjp)
    a0.jsp的code如下:
    <%@ page contentType="text/html; charset=GBK" %>
    <html>
    <head>
    <title>
    請求參數輸入頁面
    </title>
    </head>
    <body bgcolor="#ffffff">
    <h1>
    請求參數輸入頁面
    </h1>
    <form action="a0.jsp" method="POST">
      
    <table border="1">
        
    <tr>
          
    <td>用戶名:</td>
          
    <td><input  type="text" name="name"/></td>
        
    </tr>
        
    <tr>
          
    <td>性別:</td>
          
    <td>
            
    <input  type="radio" name="sex" value="男"/>
            
    <input  type="radio" name="sex" value="女"/>
          
    </td>
        
    </tr>
        
    <tr>
          
    <td>興趣愛好:</td>
          
    <td>
            
    <input  type="checkbox" name="interest" value="上網"/>上網
            
    <input  type="checkbox" name="interest" value="旅游"/>旅游
            
    <input  type="checkbox" name="interest" value="閱讀"/>閱讀
          
    </td>
        
    </tr>
      
    </table>
      
    <input  type="submit" name="submit" value="提交"/>
    </form>
    </body>
    </html>
    a1.jsp的code如下:
    <%@ page contentType="text/html; charset=GBK"%>
    <html>
    <head>
    <title>接收請求參數</title>
    </head>
    <body bgcolor="#ffffff">
    <h1>接收客戶端請求數據</h1>
    <%
        request.setCharacterEncoding(
    "GBK");
        
    String name = request.getParameter("name");
        
    String sex = request.getParameter("sex");
        
    String[] interest = request.getParameterValues("interest");
    %>
    <table border="1">
        
    <tr>
            
    <td>用戶名:</td>
            
    <td><%=name%></td>
        
    </tr>
        
    <tr>
            
    <td>性別:</td>
            
    <td><%=sex%></td>
        
    </tr>
        
    <tr>
            
    <td>興趣愛好:</td>
            
    <td>
            
    <%
                    
    for (int i = 0; i < interest.length; i++) {
                    out.print(interest[i]);
                    out.print(
    ",");
                }
            
    %>
            
    </td>
        
    </tr>
    </table>
    <%
        RequestDispatcher rd
    =request.getRequestDispatcher("ra3.jsp");
        rd.forward(request,response);
    %>
    </body>
    </html>
    a2.jsp的code如下:
    <%@ page contentType="text/html; charset=GBK" %>
    <html>
    <head>
    <title>
    dispatcher轉發結果顯示頁面
    </title>
    </head>
    <body bgcolor="#ffffff">
    <h1>
    dispatcher轉發結果顯示頁面
    </h1>
    name參數的值是:
    <%=request.getParameter("name")%>
    </body>
    </html>

    2、利用include()方法實現轉發控制 (包括請求頁面a0.jsp、接受請求的頁面a1.jsp和轉發到頁面a2.sjp)
    a0.jsp與a2.jsp同forward()方法轉發,a1.jsp的code如下:
    <%@ page contentType="text/html; charset=GBK"%>
    <html>
    <head>
    <title>接收請求參數</title>
    </head>
    <body bgcolor="#ffffff">
    <h1>接收客戶端請求數據</h1>
    <%
        request.setCharacterEncoding(
    "GBK");
        
    String name = request.getParameter("name");
        
    String sex = request.getParameter("sex");
        
    String[] interest = request.getParameterValues("interest");
    %>
    <table border="1">
        
    <tr>
            
    <td>用戶名:</td>
            
    <td><%=name%></td>
        
    </tr>
        
    <tr>
            
    <td>性別:</td>
            
    <td><%=sex%></td>
        
    </tr>
        
    <tr>
            
    <td>興趣愛好:</td>
            
    <td>
            
    <%
                    
    for (int i = 0; i < interest.length; i++) {
                    out.print(interest[i]);
                    out.print(
    ",");
                }
            
    %>
            
    </td>
        
    </tr>
    </table>
    <%
        out.flush();
    //不影響
        RequestDispatcher rd 
    = request.getRequestDispatcher("ra3.jsp");
        rd.include(request, response);
           out.println("我又回來了~~");
    %>
    </body>
    </html>
    注意:調用forward()方法后,原先存放在HttpResponse對象中的內容將會被自動清除,再回應被發送到客戶端之前才能調用forward()方法。如在out.flush()與out.close()之后使用,當無效。forward()方法與include方法非常類似,前者只顯示被轉發到的顯面,后者將兩個頁面的內容合并在一起顯示,并回到轉發前的頁面。
     

    3、requestDispatcher.forward()和response.sendRedirect()兩者的區別是什么,平時如何在程序開發中如

    何使用?
    答:requestDispatcher.forward()是容器中控制權的轉向,在客戶端瀏覽器地址欄中不會顯示出轉向后

    的地址;而response.sendRedirect()則是完全的跳轉,瀏覽器會得到跳轉的地址,并重新發送請求鏈接

    。這樣,從瀏覽器的地址欄中可以看到跳轉后的鏈接地址。前者更加高效,在前者可以滿足需要時,晝使

    用它。

    Feedback

    # re: request之請求轉發  回復  更多評論   

    2013-07-08 12:59 by 46456
    456465

    # re: request之請求轉發  回復  更多評論   

    2013-07-08 13:00 by 46456
    …………
    我以為這是代碼測試的

    2了
    主站蜘蛛池模板: 在线观看亚洲天天一三视| 免费国产成人午夜电影| 亚洲成a人片在线观看无码| 成人精品视频99在线观看免费| 亚洲第一区在线观看| 一本大道一卡二大卡三卡免费| 亚洲中文字幕无码爆乳av中文| 四虎一区二区成人免费影院网址 | 亚洲日韩精品国产3区| 无码日韩精品一区二区免费| 亚洲依依成人精品| 在线观看免费国产视频| 亚洲av日韩精品久久久久久a| xvideos亚洲永久网址| 一级免费黄色毛片| 亚洲AV无码乱码在线观看裸奔| 一区二区在线免费观看| 亚洲欧洲自拍拍偷午夜色| 好吊妞在线新免费视频| 精品国产日韩亚洲一区在线 | 黄页网站在线看免费| 国产午夜亚洲精品国产| 国产一级高清免费观看| eeuss在线兵区免费观看| 亚洲韩国—中文字幕| 亚洲精品动漫免费二区| 免费无码午夜福利片| 亚洲AV无码国产精品麻豆天美 | 久久青草免费91线频观看站街| 亚洲永久中文字幕在线| 国产小视频在线免费| 在线观看免费无码视频| 亚洲国产精品日韩在线| 国产v片免费播放| 一级毛片在线免费观看| 亚洲日韩国产AV无码无码精品| 亚洲真人无码永久在线| 性xxxxx免费视频播放| 一级午夜a毛片免费视频| 2020年亚洲天天爽天天噜| 久久久青草青青国产亚洲免观|