<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 夢與橋 閱讀(7164) 評論(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了
    主站蜘蛛池模板: 国产成人在线免费观看| 亚洲bt加勒比一区二区| 中文在线观看免费网站| 亚洲尹人九九大色香蕉网站 | 久久免费观看国产99精品| 亚洲国产精品成人综合久久久 | mm1313亚洲国产精品美女| 免费日本一区二区| 亚洲色欲色欲www在线播放| 亚洲国产av一区二区三区| 一级毛片免费观看| 色欲aⅴ亚洲情无码AV| 亚洲视频.com| 又色又污又黄无遮挡的免费视| 黄网站免费在线观看| 亚洲国产成人精品无码区二本| 亚洲午夜福利717| 在线成人a毛片免费播放| 国产啪精品视频网站免费尤物| 亚洲 日韩 色 图网站| 久久99国产亚洲高清观看首页| 在线观看免费宅男视频| 性xxxx视频免费播放直播| 香蕉97碰碰视频免费| 亚洲ts人妖网站| 久久精品亚洲一区二区 | 激情内射亚洲一区二区三区| 免费看国产一级片| 日本h在线精品免费观看| 中文字幕免费在线看| 亚洲AV综合色区无码一二三区| 亚洲美女大bbbbbbbbb| 国产gv天堂亚洲国产gv刚刚碰| 四虎影视免费在线| 国产91色综合久久免费分享| 西西人体免费视频| 日韩毛片在线免费观看| 亚洲成AV人片在WWW| 亚洲不卡视频在线观看| 久久精品国产亚洲av高清漫画| 亚洲中文字幕无码日韩|