jsp实现页面跳转的几种常用方式

一,  使用href超链接标记              (客户端跳转)

通常写到a标签里即可,来完成指定位置的动态跳转比较方便

代码:<a href=”new.jsp”>跳转</a>

二,  提交表单                            (客户端跳转)

    <form name="form" method="post" action="page2.jsp">

              <input type="submit" value="跳转1">

          </form>

三,  Javascrip事件       (客户端跳转)

    <input type="button" value="跳转2" οnclick="next()">

        <script type="text/javascript">

              function next(){

                  window.location = "page2.jsp";

              }

         </script>

 

四,  使用response对象     (客户端跳转)(重定向)

   

直接使用sendRedirect()重定向, 重定向后在浏览器地址栏上会出现重定向页面的URL.代码:  

 

        <%  response.sendRedirect("page2.jsp"); %>

        说明: sendredirect()中是可以带参数的,例如sendredirect("url?name="+name);我们可以在跳转的时候传入参数.

        此外,一般response.sendRedirect()之后紧跟一句 return;我们已经知response.sendRedirect是通过浏览器来做转向的,所以只有在页面处理完成后,才会有实际的动作。既然已经要做转向了,那么后的输出就已经没有意义了,而且有可能会因为后面的输出导致转向失败。

使用setHeader()方法,直接修改地址栏来实现页面的重定向

         <%  

               response.setHeader("Refresh","1;url=page2.jsp");        

         %> 

         标准格式: response.setHeader("Refresh","等待的秒数;url=绝对路径或者相对路径");上例是等待1秒之后跳转.

 

五,  使用forward动作标记   (服务器端跳转)(转发)

    jsp自带的forword标签来实现跳转    <jsp:forward page="page2.jsp" /> 

 

六,   使用RequestDispatcher类     (服务器端跳转)(转发) 

    <% request.getRequestDispatcher("page2.jsp").forward(request, response);%> 

 

response重定向和forward跳转和RequestDispatcher的区别

(1) response重定向

    执行完页面的所有代码,再跳转到目标页面。
    跳转到目标页面后,浏览器地址栏中的URL会改变。
    在浏览器端重定向。
    可以跳转到其它服务器上的页面,response.sendRedirect(“http://www.baidu.com”)

(2) forward跳转

    forward动作标记之后的代码,不再执行,直接跳转到目标页面。
    跳转到目标页面后,浏览器地址栏中的URL不会改变。
    在服务器端重定向。
    无法跳转到其它服务器上的页面。

    指定目标页面时,既可以使用绝对路径,也可以使用相对路径。

(3) RequestDispatcher跳转

    执行完所有代码,包括RequestDispatcher之后的所有代码,再跳转到目标页面。
    跳转到目标页面后,浏览器地址栏中的URL不会改变。
    在服务器端重定向。
    无法跳转到其它服务器上的页面。

    指定目标页面时,只能使用绝对路径。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平