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

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

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

    隨筆 - 100  文章 - 50  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    收藏夾

    我收藏的一些文章!

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    request之請求轉發
    a0.jsp
    <%
    @ page contentType="text/html; charset=GBK" %>
    <html>
    <head>
    <title>
    請求參數輸入頁面
    </title>
    </head>
    <body bgcolor="#ffffff">
    <h1>
    請求參數輸入頁面
    </h1>
    <form action="a1.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>

    JSP頁面跳轉與請求轉發收藏

    1、response.sendRedirect(url)

    是指請求重定向,原來頁面的參數在這里是得不到的,即用request.getParameter("param")返回的是null

    2、forward請求轉發,指將原頁面的request,response對象傳入新的頁面,因此這新舊頁面擁有相同的 request,response對象。這樣request.getParameter("param")就可以得到相應的值

    3、區分ServletContext.getRequestDispatcher與 ServletRequest.getRequestDispatcher

    ServletContext.getRequestDispatcher 路徑必須是相對上下文的絕對路徑

    ServletRequest.getRequestDispatcher 可以是相對也可以是絕對

    4、注意的一點是:使用forward轉發后在瀏覽器上看到的地址欄顯示的是轉發前的還不是轉發后的。如由test.jsp向good.jsp轉發了,那么地址欄顯示的是test.jsp.這是因為forward是在服務器端進行的,瀏覽器根本不知道,而重定向是在客戶端進行的,所以使用response.sentRedirect("red.jsp")會直接定向到red.jsp。由此想到index.jsp如果請求的是servlet那么在servlet中進行forawrd轉發到另一個red.jsp頁面,但當查看結果時,在地址欄顯示的將只是servlet的名稱而不是red.jsp,如果你想知道最終看到的頁面的名稱那只有查代碼了。

    reference it:

    服務器端進行轉向的4種方法:

    1. ServletContext的getRequestDispatcher()

    2. ServletContext的getNamedDispatcher()

    3. ServletRequest的getRequestDispatcher()

    4. ServletResponse的sendRedirect()進行轉向。

    1.2.3 => forward() 4. sendRedirect()

    使用forward方法,因為這些這樣比較高效。只有在forward方法不能使用時(比如要轉向到一個非本web應用),再使用ServletResponse的sendRedirect()方法。

    <jsp:fordward>與 sendRedirect 方法的比較

    雖然 <jsp:fordward>與 sendRedirect 方法,都可以將瀏覽器瀏覽的網頁,重導至另一個網頁,但是兩者在原理上是不太相同。

    a. <jsp:fordward> : 動作是利用伺服端,將資料輸出至緩沖區的機制,在前一個網頁尚未輸出到客戶端前,取消資料的輸出,然后輸出另一個網頁的資料,達到重導瀏覽器的效果。

    優點: 兩網頁間可以分享 request 對象內的變量。

    b. sendRedirect : 動作是透過 HTTP 協議的 Header , 對瀏覽器下達重導指令,因此,不牽涉到服務器端緩沖區的問題。

    不過由于 sendRedirect 方法作用于客戶端,所以重導前后網頁無法分享存在于 request 對象內的變量。
    Solution: response.sendRedirect(“sendRedirect.htm?name=sparkwu&E-Mail=spark.wu@cobra-tech.com”)


    posted on 2009-08-09 22:39 fly 閱讀(779) 評論(0)  編輯  收藏 所屬分類: jsp學習
    主站蜘蛛池模板: 亚洲午夜久久久久久噜噜噜| 日韩在线一区二区三区免费视频| 国产亚洲人成A在线V网站| 69天堂人成无码麻豆免费视频| 中文日本免费高清| 日本系列1页亚洲系列| 亚洲欧洲尹人香蕉综合| 亚洲国产精品无码专区影院 | 亚洲精品无码MV在线观看| 免费观看美女裸体网站| **实干一级毛片aa免费| 精品亚洲永久免费精品| aaa毛片视频免费观看| 九九久久精品国产免费看小说| 亚洲AV无码专区在线观看成人| 亚洲成aⅴ人片在线观| 91情国产l精品国产亚洲区| 亚洲国产精品无码AAA片| 伊人亚洲综合青草青草久热| 亚洲成?v人片天堂网无码| 黄网址在线永久免费观看 | 免费人成视频x8x8入口| 免费无码又爽又刺激高潮| 成年人在线免费看视频| 久久综合AV免费观看| 成人免费的性色视频| 日本黄网站动漫视频免费| 91精品国产免费入口| 91青青青国产在观免费影视| 在线成人爽a毛片免费软件| 91大神在线免费观看| 99在线观看视频免费| 无码少妇精品一区二区免费动态| 青青操免费在线观看| 中文字幕日本人妻久久久免费| 十八禁视频在线观看免费无码无遮挡骂过| 好猛好深好爽好硬免费视频| 久久久久久久久久久免费精品 | 免费在线视频一区| 亚洲色婷婷综合开心网| 国产亚洲综合久久系列|