一. 重定向和转发工程

1. 新建一个SendRedirectForward的Web工程

2. 在WebContent下新建index.html和success.html

3. 编写index.html

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>重定向和转发</title></head><body><a href="SendRedirect.action">重定向</a><br/><a href="Forward.action">转发</a></body>
</html>

4. 编写success.html

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>success</title></head><body><h1>success</h1></body>
</html>

5. 新建SendRedirect.java和Forward.java

6. 编写SendRedirect.java

package com.lywgames.myservlet;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class SendRedirect extends HttpServlet {private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.sendRedirect("success.html");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}

7. 编写Forward.java

package com.lywgames.myservlet;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class Forward extends HttpServlet {private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.getRequestDispatcher("success.html").forward(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}

8. 编写web.xml

9. 部署运行

10. 打开chrome的开发者选项, 点击重定向

11. 打开chrome的开发者选项, 点击转发

二. 重定向和转发

1. 重定向

1.1. 重定向写法: 使用HttpServletResponse的sendRedirect方法, 参数是重定向的位, 即跳转的位置。response.sendRedirect("success.html")。

1.2. 地址栏上显示的是最后的那个资源的路径地址。

1.3. 请求次数最少有两次, 服务器在第一次请求后, 会返回302和一个地址, 浏览器在根据这个地址, 执行第二次访问。

1.4. 可以跳转到任意路径, 不是自己的工程也可以跳。

1.5. 效率稍微低一点, 执行两次请求。

1.6. 后续的请求, 没法使用上一次的request存储的数据, 或者没法使用上一次的request对象, 因为这是两次不同的请求。

2. 转发

2.1. 请求转发的写法, 参数即跳转的位置: request.getRequestDispatcher("success.html").forward(request, response);

2.2. 地址栏上显示的是请求servlet的地址, 返回200(ok)。

2.3. 请求次数只有一次, 因为是服务器内部帮客户端执行了后续的工作。

2.4. 只能跳转自己项目的资源路径 。

2.5. 效率上稍微高一点, 因为只执行一次请求。

2.6. 可以使用上一次的request对象。

015_请求转发和重定向相关推荐

  1. jsp:请求转发和重定向

    HttpServletResponse对象的sendRedirect(String location)方法称作重定向, 如果location地址前面加上"/",则表示相对于Serv ...

  2. 浅析请求转发和重定向

    浅析请求转发和重定向 1.请求转发 request.getRequestDispather("/indexServlet").forword(request,response); ...

  3. 【相对/绝对路径】JavaWeb项目中,请求转发与重定向的路径写法

    相对路径.全路径 是要不以/开头,都是相对路径.相对路径是从当前资源出发,去寻找其他资源. 只要路径中以/开肉,就是全路径.全路径是从项目根目录出发,去寻找其他资源. 在开发中,写文件路径时,最好使用 ...

  4. 【Servlet】请求转发、重定向、Cookie使用之三天自动登陆

    三天自动登陆项目源码:GitHub地址-LoginSystem JDBC 手写SORM框架 手写Servlet 开发环境:Eclipse 一.请求乱码问题解决 // 设置请求.响应编码格式req.se ...

  5. 【JavaWeb】Response请求转发与重定向辨析

    请求转发与重定向对比 辨析 请求转发只有一次请求.一次响应,是在服务端内部跳转 重定向有两次请求.两次响应:将结果返回给客户端,让客户端重新发起一次跳转 请求转发的登陆界面实现 login.jsp & ...

  6. 【JavaWeb】一文Servlet全解:继承关系、生命周期、容器和请求转发与重定向等

    文章目录 一.Servlet 概述 二.Servlet HelloWorld 三.Servlet 继承关系 四.Servlet 生命周期 五.ServletConfig 和 ServletContex ...

  7. ServletRequest HttpServletRequest 请求方法 获取请求参数 请求转发 请求包含 请求转发与重定向区别 获取请求头字段...

    原文地址:ServletRequest HttpServletRequest 请求方法 获取请求参数 请求转发 请求包含 请求转发与重定向区别 获取请求头字段 ServletRequest 基本概念 ...

  8. 请求转发与重定向的区别和执行流程

    请求转发与重定向的区别和执行流程 文章目录 请求转发与重定向的区别和执行流程 1 请求转发与重定向区别 2 现实生活的例子 2.1 重定向 2.2 请求转发 3 重定向-流程图.代码.结果 3.1 流 ...

  9. 【Servlet】请求转发与重定向

    重定向 重定向是指由原请求地址重新定位到某个新地址,原有的request请求失效,客户端看到的是新的request请求返回的响应结果,客户端浏览器地址栏变为新请求地址. 一次重定向过程存在两次请求和两 ...

最新文章

  1. mx3 android 5.1,魅族MX3揭晓:猎户座处理器5.1寸屏幕
  2. 这应该是最通俗易懂的一篇Spring知识点总结了
  3. 关于Activity的getReferrer():如何在Activity中获取调用者?
  4. bind配置文件解析
  5. 彩虹云商城6.6特别版源码
  6. 非printf形式的十六进制和二进制打印(雅虎面试题)
  7. 可怕!你没看错,这次确实是纯手工实现一个MyBatis框架!
  8. android 登录 service_如何优雅的实现自己的Android组件化改造?
  9. FC SAN、IP SAN、IB SAN
  10. 腾讯云域名转出转移码申请及转入阿里云全流程(图解)
  11. Autojs实战教程---番茄免费小说Apk文件和源码
  12. 一、pytorch环境配置
  13. c#模拟微信运动排行榜
  14. 1.mysql 的安装
  15. 我们无法创建新分区。【错误:0x80042468】
  16. fabs ( )【C语言库函数源代码】
  17. bp神经网络模式识别,bp神经网络数字识别
  18. 清华大学计算机考研机试KY6 手机键盘
  19. 8-14-粘包问题、(通过简单报头)解决粘包问题、定制复杂报头
  20. 我的不过范德萨就好过放电

热门文章

  1. [03]常用正则表达式
  2. zookeeper web ui--gt;node-zk-browser安装
  3. jenkins产生503错误的解决方法
  4. cordova 强制竖屏
  5. Ansible自动化运维工具介绍
  6. ultraedit连接UNIX
  7. PostgreSQL和Kingbase中设置search_path
  8. 多视图关联选择的例子
  9. 前端相关的一些小工具
  10. linux进程端口防火墙