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

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

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

    明天的明天的明天

    用鍵盤改變生活

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      17 Posts :: 0 Stories :: 19 Comments :: 0 Trackbacks

    使用JSP大約有下列三種跳轉(zhuǎn)方式:
    1. response.sendRedirect();
    2. response.setHeader("Location","");
    3. <jsp:forward page="" />

    經(jīng)過(guò)試驗(yàn)得到下面的一些規(guī)則:

    一. response.sendRedirect()

    1. 此語(yǔ)句前不允許有out.flush(),如果有,會(huì)有異常:
      java.lang.IllegalStateException: Can't sendRedirect() after data has committed to the client.
       at com.caucho.server.connection.AbstractHttpResponse.sendRedirect(AbstractHttpResponse.java:558)
      ...
    2. 跳轉(zhuǎn)后瀏覽器地址欄變化
    3. 如果要跳到不同主機(jī)下,跳轉(zhuǎn)后,此語(yǔ)句后面的語(yǔ)句會(huì)繼續(xù)執(zhí)行,如同新開了線程,但是對(duì)response的操作已經(jīng)無(wú)意義了;
    4. 如果要跳到相同主機(jī)下,此語(yǔ)句后面的語(yǔ)句執(zhí)行完成后才會(huì)跳轉(zhuǎn);

    二. response.setHeader("Location","")

    1. 此語(yǔ)句前不允許有out.flush(),如果有,頁(yè)面不會(huì)跳轉(zhuǎn)。
    2. 跳轉(zhuǎn)后瀏覽器地址欄變化
    3. 此語(yǔ)句后面的語(yǔ)句執(zhí)行完成后才會(huì)跳轉(zhuǎn)

    三. <jsp:forward page="" />

    1. 此語(yǔ)句前不允許有out.flush(),如果有,會(huì)有異常:
      java.lang.IllegalStateException: forward() not allowed after buffer has committed.
       at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:134)
       at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:101)
       at com.caucho.jsp.PageContextImpl.forward(PageContextImpl.java:836)
       ...
    2. 跳轉(zhuǎn)后瀏覽器地址欄不變,但是只能跳到當(dāng)前主機(jī)下
    3. 此語(yǔ)句后面的語(yǔ)句執(zhí)行完成后才會(huì)跳轉(zhuǎn) 
    4. 跳轉(zhuǎn)后得路徑變?yōu)楫?dāng)前路徑,圖片不是絕對(duì)路徑將無(wú)法顯示

    JSP跳轉(zhuǎn)頁(yè)面詳解
    在JSP中使用jsp forward Action來(lái)實(shí)現(xiàn)頁(yè)面的跳轉(zhuǎn)功能。

       語(yǔ)法:
    <jsp:forward page="{relativeURL|<%= expression %>}"/> 或
    <jsp:forward page="{relativeURL|<%= expression %>}">
    <jsp:param name="parameterName"
    value="{parameterValue|<%= expression %>}"/>+</jsp:forward>
      這個(gè)action使您可以將request向前到另外一個(gè)頁(yè)面。它只有一個(gè)屬性,page。Page應(yīng)有一個(gè)相對(duì)的URL組成。這可以是一個(gè)靜態(tài)的值或者是能夠在被請(qǐng)求的時(shí)候計(jì)算得到的值,就如下面兩個(gè)例子一般:
    <jsp:forward page="/utils/errorReporter.jsp"/>
    <jsp:forward page="<%= someJavaExpression %>"/>
    !supportEmptyParas]>
      現(xiàn)在以一個(gè)具體例子來(lái)說(shuō)明:在test1.jsp中使用forward使其跳轉(zhuǎn)到test2.jsp頁(yè)面中。
    Test1.jsp
    <HTML>
    <HEAD>
    <TITLE>forward test</TITLE>
    !supportEmptyParas]>
    </HEAD>
    !supportEmptyParas]>
    <BODY BGCOLOR="#FFFFFF">
    <!--跳轉(zhuǎn)到test2.jsp--!>
    <jsp:forward page="/test2.jsp"/>
    </BODY>
    </HTML>
    !supportEmptyParas]>
    test2.jsp
    <HTML>
    <HEAD>
    <TITLE> forward test </TITLE>
    !supportEmptyParas]>
    </HEAD>
    !supportEmptyParas]>
    <BODY BGCOLOR="#FFFFFF">
    <%out.println("這是jsp2.jsp頁(yè)面產(chǎn)生出的輸出");%>
    </BODY>
    </HTML>
    !supportEmptyParas]>
      運(yùn)行test1.jsp,可在瀏覽器中看見:"這是jsp2.jsp頁(yè)面產(chǎn)生出的輸出"的輸出信息。但是如果你在test1.jsp和test2.jsp這兩個(gè)頁(yè)面中有參數(shù)傳遞怎么辦呢?用get方式吧,不但總的長(zhǎng)度有限制,使用現(xiàn)在十分不方便,而且有時(shí)候還不安全。其實(shí)我們完全可以使用jsp1.1中給forward里提供的para屬性就可以解決。現(xiàn)以test3.jsp和test4.jsp來(lái)說(shuō)明。
    !supportEmptyParas]>
    Test1.jsp
    <HTML>
    <HEAD>
    <TITLE> forward test </TITLE>
    !supportEmptyParas]>
    </HEAD>
    !supportEmptyParas]>
    <BODY BGCOLOR="#FFFFFF">
    <jsp:forward page="/test4.jsp">
    <jsp:param name="name" value="powerman"/>
    <jsp:param name="address" value=" 北京西大街188號(hào)"/>
    </jsp:forward>
    </BODY>
    </HTML>
    !supportEmptyParas]>
    test2.jsp
    <HTML>
    <HEAD>
    <TITLE>forward test</TITLE>
    !supportEmptyParas]>
    </HEAD>
    !supportEmptyParas]>
    <BODY BGCOLOR="#FFFFFF">
    <%
    out.println("這是jsp4.jsp頁(yè)面產(chǎn)生出的輸出"+"<br>");
    out.println("姓名:"+request.getParameter("name")+"<br>");
    out.println("地址:"+request.getParameter("address")+"<br>");
    !supportEmptyParas]>
    %>
    </BODY>
    </HTML>
       運(yùn)行test3.jsp,可在瀏覽器中看見:
       "這是jsp4.jsp頁(yè)面產(chǎn)生出的輸出
       姓名:powerman
       地址:北京西大街188號(hào)"
    的輸出信息
    posted on 2007-09-17 12:54 Endless 閱讀(1766) 評(píng)論(1)  編輯  收藏

    Feedback

    # re: 【轉(zhuǎn)】JSP三種頁(yè)面跳轉(zhuǎn)方式 2012-01-06 08:49 525
    202  回復(fù)  更多評(píng)論
      


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲性69影院在线观看| 亚洲乱码国产乱码精品精| 亚洲免费电影网站| 久久久久免费看成人影片| 亚洲欧洲日产国码久在线观看| 男女拍拍拍免费视频网站| 久久乐国产精品亚洲综合| a级毛片毛片免费观看永久| 国产亚洲精品a在线观看app| 华人在线精品免费观看| 久久亚洲中文字幕精品有坂深雪 | 99久久人妻精品免费一区| 亚洲成人在线网站| 成人免费观看一区二区| 亚洲乱码中文字幕在线| 亚洲第一区在线观看| 99久久成人国产精品免费| 亚洲小视频在线观看| 91在线视频免费播放| 国产在亚洲线视频观看| 亚洲精品制服丝袜四区| 91网站免费观看| 精品国产亚洲AV麻豆| 亚洲日韩欧洲无码av夜夜摸| 114级毛片免费观看| 亚洲av无码专区在线电影天堂| 亚洲午夜日韩高清一区| 免费无码成人AV在线播放不卡| 国产精品亚洲综合五月天| 亚洲国产香蕉人人爽成AV片久久 | 亚洲精品无码久久久久A片苍井空| 免费一级成人毛片| 亚洲免费视频在线观看| 亚洲性色AV日韩在线观看| 亚洲综合在线另类色区奇米| 国产四虎免费精品视频| 日韩在线视频播放免费视频完整版| 亚洲国产成人久久精品影视| 在线免费观看国产视频| 久久久久国产免费| 国产亚洲综合久久|