JSP的response对象

response 代表的是对客户端的响应,主要是将 JSP 容器处理过的对象传回到客户
端。response 对象也具有作用域,它只在 JSP 页面内有效。

response实现页面跳转----重定向

代码

1-1.jsp

<%--
  Created by IntelliJ IDEA.
  User: skype
  Date: 2022/5/27
  Time: 17:09
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>1-1.jsp</title>
</head>
<body>
<%
    request.setAttribute("A",123);//通过request的作用域对比重定向和转发的区别
    System.out.println("1-1");
    Thread.sleep(5000);//线程休眠5秒。方便直观观察

    //页面跳转---重定向
    response.sendRedirect("1-2.jsp");

    //页面跳转---转发
    //request.getRequestDispatcher("1-2.jsp").forward(request,response);

%>

</body>
</html>

1-2.jsp

<%--
  Created by IntelliJ IDEA.
  User: skype
  Date: 2022/5/27
  Time: 17:10
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>1-2.jsp</title>
</head>
<body>
<%
    System.out.println("1-2");
    Object v1= request.getAttribute("A");
    out.print(v1);
%>

</body>
</html>

运行结果 

重定向

 

运行1-1.jsp,如图一所示,过五秒后,自动跳转到1-2.jsp,浏览器URL地址栏的请求发生了改变,v1值显示为null,说明这是两次请求,两次响应。

 转发

 这里发现,请求访问1-1.jsp,浏览器URL地址栏没有发生改变,即一次请求,并且显示了v1值的内容。(运行转发代码时,要先将重定向的代码注释掉)

request作用域为一次请求开始,响应结束。重定向时v1值为null,转发时v1值不为空;

 从这两种运行结果不难看出

  • 重定向:多次请求,多次响应
  • 转发:一次请求,一次响应;

转发和重定向区别 

 转发和重定向总结

  1. 转发用getRequestDispatcher( )方法。重定向用response.sendRedirect( )方法;
  2. 转发:浏览器URL地址栏不变。重定向:浏览器URL地址栏改变;
  3. 转发浏览器只做了一次访问请求。重定向是浏览器做了至少两次的访问请求;
  4. 转发是服务器行为,重定向是客户端行为。
  5. 转发2次跳转之间传输地的信息不会丢失,重定向2次跳转之间传输的信息会丢失(request范围)
  6. 重定向的速度比转发慢,因为浏览器需要再次发出新的请求,而转发不需要;
  7. 重定向可以跨域访问,而转发是在web服务器内部进行的,不能跨域访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值