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

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          我收藏的一些文章!

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          request之請(qǐng)求轉(zhuǎn)發(fā)
          a0.jsp
          <%
          @ page contentType="text/html; charset=GBK" %>
          <html>
          <head>
          <title>
          請(qǐng)求參數(shù)輸入頁面
          </title>
          </head>
          <body bgcolor="#ffffff">
          <h1>
          請(qǐng)求參數(shù)輸入頁面
          </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="上網(wǎng)"/>上網(wǎng)
                  
          <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>接收請(qǐng)求參數(shù)</title>
          </head>
          <body bgcolor="#ffffff">
          <h1>接收客戶端請(qǐng)求數(shù)據(jù)</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轉(zhuǎn)發(fā)結(jié)果顯示頁面
          </title>
          </head>
          <body bgcolor="#ffffff">
          <h1>
          dispatcher轉(zhuǎn)發(fā)結(jié)果顯示頁面
          </h1>
          name參數(shù)的值是:
          <%=request.getParameter("name")%>
          </body>
          </html>

          JSP頁面跳轉(zhuǎn)與請(qǐng)求轉(zhuǎn)發(fā)收藏

          1、response.sendRedirect(url)

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

          2、forward請(qǐng)求轉(zhuǎn)發(fā),指將原頁面的request,response對(duì)象傳入新的頁面,因此這新舊頁面擁有相同的 request,response對(duì)象。這樣request.getParameter("param")就可以得到相應(yīng)的值

          3、區(qū)分ServletContext.getRequestDispatcher與 ServletRequest.getRequestDispatcher

          ServletContext.getRequestDispatcher 路徑必須是相對(duì)上下文的絕對(duì)路徑

          ServletRequest.getRequestDispatcher 可以是相對(duì)也可以是絕對(duì)

          4、注意的一點(diǎn)是:使用forward轉(zhuǎn)發(fā)后在瀏覽器上看到的地址欄顯示的是轉(zhuǎn)發(fā)前的還不是轉(zhuǎn)發(fā)后的。如由test.jsp向good.jsp轉(zhuǎn)發(fā)了,那么地址欄顯示的是test.jsp.這是因?yàn)閒orward是在服務(wù)器端進(jìn)行的,瀏覽器根本不知道,而重定向是在客戶端進(jìn)行的,所以使用response.sentRedirect("red.jsp")會(huì)直接定向到red.jsp。由此想到index.jsp如果請(qǐng)求的是servlet那么在servlet中進(jìn)行forawrd轉(zhuǎn)發(fā)到另一個(gè)red.jsp頁面,但當(dāng)查看結(jié)果時(shí),在地址欄顯示的將只是servlet的名稱而不是red.jsp,如果你想知道最終看到的頁面的名稱那只有查代碼了。

          reference it:

          服務(wù)器端進(jìn)行轉(zhuǎn)向的4種方法:

          1. ServletContext的getRequestDispatcher()

          2. ServletContext的getNamedDispatcher()

          3. ServletRequest的getRequestDispatcher()

          4. ServletResponse的sendRedirect()進(jìn)行轉(zhuǎn)向。

          1.2.3 => forward() 4. sendRedirect()

          使用forward方法,因?yàn)檫@些這樣比較高效。只有在forward方法不能使用時(shí)(比如要轉(zhuǎn)向到一個(gè)非本web應(yīng)用),再使用ServletResponse的sendRedirect()方法。

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

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

          a. <jsp:fordward> : 動(dòng)作是利用伺服端,將資料輸出至緩沖區(qū)的機(jī)制,在前一個(gè)網(wǎng)頁尚未輸出到客戶端前,取消資料的輸出,然后輸出另一個(gè)網(wǎng)頁的資料,達(dá)到重導(dǎo)瀏覽器的效果。

          優(yōu)點(diǎn): 兩網(wǎng)頁間可以分享 request 對(duì)象內(nèi)的變量。

          b. sendRedirect : 動(dòng)作是透過 HTTP 協(xié)議的 Header , 對(duì)瀏覽器下達(dá)重導(dǎo)指令,因此,不牽涉到服務(wù)器端緩沖區(qū)的問題。

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


          posted on 2009-08-09 22:39 fly 閱讀(779) 評(píng)論(0)  編輯  收藏 所屬分類: jsp學(xué)習(xí)
          主站蜘蛛池模板: 顺昌县| 漳州市| 措美县| 西青区| 广宁县| 怀仁县| 宜春市| 古田县| 安庆市| 克东县| 高青县| 新沂市| 容城县| 四平市| 海兴县| 合阳县| 孝昌县| 凉城县| 上思县| 太谷县| 屯昌县| 英吉沙县| 外汇| 积石山| 千阳县| 汝州市| 富川| 永清县| 高安市| 和平县| 英德市| 万盛区| 嘉峪关市| 肥乡县| 封丘县| 新郑市| 深州市| 武清区| 尼木县| 西峡县| 巴林右旗|