<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了
    主站蜘蛛池模板: 免费看的黄色大片| 国产成人精品亚洲日本在线| 成人毛片18女人毛片免费| 成人免费ā片在线观看| 亚洲欧美日韩自偷自拍| 亚洲导航深夜福利| 亚洲AV永久无码精品水牛影视| 国产成人在线免费观看| 日本免费网址大全在线观看| 无码专区AAAAAA免费视频| 在线播放国产不卡免费视频| 亚洲av最新在线观看网址| 亚洲人成在线精品| 亚洲视频在线观看网站| 亚洲成AV人片一区二区| 国产AⅤ无码专区亚洲AV| 国产免费啪嗒啪嗒视频看看| 女人被免费视频网站| 亚洲成人免费网址| 久久久久久AV无码免费网站下载 | 国产亚洲成在线播放va| 亚洲专区一路线二| 亚洲精品日韩专区silk| 久久国产精品亚洲综合| 亚洲日韩精品A∨片无码| 国产亚洲色婷婷久久99精品91| 日韩亚洲精品福利| 亚洲av区一区二区三| 免费国产成人高清在线观看麻豆| 日韩一级免费视频| 国产精品免费看久久久无码| 国产一区视频在线免费观看| 国产免费午夜a无码v视频| 国产精品色午夜视频免费看| 日产乱码一卡二卡三免费| 国产精品色午夜视频免费看| 国产一区二区视频免费| www国产亚洲精品久久久| 亚洲精品视频在线看| 国产亚洲一区二区三区在线不卡| 国产AV无码专区亚洲AWWW|