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

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

       即:<jsp:forward page=""></jsp:forward>

2、repsonse重定向

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

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

<!DOCTYPE html>
<html>
    <head>
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
        <form action="test2.jsp">
             <input type="submit" value="提交">
        </form>
    </body>
</html>

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

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
       <%
         response.sendRedirect("test3.jsp");
       %>
    </body>
</html>
test3.jsp代码如下所示,在页面上将显示“这是Test3.jsp页面”字样

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>这是Test3.jsp页面</h1>
    </body>
</html>

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


图1 test1.jsp


图2 test3.jsp

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

<jsp:forward page="test3.jsp"></jsp:forward>
即可

4、两种跳转方式的区别

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


使用redirect重定向后的结果


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


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

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

  例如:重定向至百度:

   < % 

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

  %>

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

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


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

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

suwu150

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值