Java Web中重新定向的两种方式

1、  在jsp中,重新定向的方法有两种,一种是response.sendRedirect(),另外一种是jsp动作指令

       即:

2、repsonse重定向

   (1)利用response对象进行重定向,方法:response.sendRedirect(目标页面路径)

    下面举例演示:首先创建页面test1.jsp,用于跳转到test2.jsp,test1.jsp代码如下所示:



    
        TODO supply a title
        
        
    
    
        

test2.jsp代码如下所示,其中,response.sendRedirect("Test3.jsp")用于重定向到Test3.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>


    
        
        JSP Page
    
    
       <%
         response.sendRedirect("test3.jsp");
       %>
    
test3.jsp代码如下所示,在页面上将显示“这是Test3.jsp页面”字样

<%@page contentType="text/html" pageEncoding="UTF-8"%>


    
        
        JSP Page
    
    
        

这是Test3.jsp页面

在点击运行后,我们能够看到直接从test1.jsp跳转到Test3.jsp页面,而不显示Test2.jsp

Java Web中重新定向的两种方式_第1张图片

图1 test1.jsp

Java Web中重新定向的两种方式_第2张图片

图2 test3.jsp

3、对于jsp重定向,只需将test2.jsp中的代码改为:  

即可

4、两种跳转方式的区别

  (1)forward方法属于服务器端去请求资源,服务器直接访问目标地址,并对该目标地址的响应内容进行读取,再把读取的内容发送给浏览器,因此客户端浏览器地址不变,而redirect是告诉客户端,是浏览器知道去请求哪一个地址,相当于客户端重新请求


使用redirect重定向后的结果

Java Web中重新定向的两种方式_第3张图片

使用jsp:forward重定向后的结果


  (2)forward转发的页面内容能够共享request里面的数据,,而redirect转发的页面及转发到的目标页面不能够共享request里边的数据

  (3)request不仅能够重定向到当前应用程序的资源,而且还能够重定向到同一站点的其他应用程序,甚至可以定向到其他站点的资源

  例如:重定向至百度:

   < % 

               response.sendRedirect("http://www.baidu.com");

  %>

若使用forward进行同样的操作,就会提示出错

   (4)forward提交效率要高于redirect,因为前者是基于服务器端的,而后者是重新提交一遍URL。


以上就是两种重定向的区别。

你可能感兴趣的:(Java,Web,Java,EE企业应用开发)