请求转发和响应重定向

embedded/2025/2/22 3:39:55/

请求转发

  1. 请求转发是通过HttpServletRequest对象实现的
  2. 请求转发是服务器内部行为,对客户端是屏蔽的
  3. 客户端只产生了一次请求,服务端只产生了一对request和response对象
  4. 客户端的地址栏是不变的
  5. 请求的参数是可以继续传递的
  6. 目标资源可以是Servlet、静态资源,也可以是WEB-INF下的受保护的资源;不可以是外部资源
java">@WebServlet("/servlet1")
public class ServletTest1 extends HttpServlet {public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 获取请求转发对象,可以转发给其他ServletRequestDispatcher requestDispatcher = req.getRequestDispatcher("servlet2");// 也可以转发给静态资源// RequestDispatcher requestDispatcher = req.getRequestDispatcher("aaa.html");// 也可以转发给WEB-INF下的受保护资源// RequestDispatcher requestDispatcher = req.getRequestDispatcher("WEB-INF/bbb.html");// 转发,将参数传递过去requestDispatcher.forward(req, resp);}
}@WebServlet("/servlet2")
public class ServletTest2 extends HttpServletRequest {public void service(HttpServletRequest req, HttpServletResponse resp) {System.out.println("servlet2执行了");}
}

响应重定向(推荐)

  1. 响应重定向是通过HttpServletReaponse对象实现的
  2. 响应重定向是在服务端通过302响应码和location路径,告诉客户端自己重定向到目标资源,是在服务端提示下的,客户端的行为
  3. 客户端的地址栏是变化的,客户端至少发送了两次请求
  4. 请求产生了多次,后端就会有多个request和response对象,所以请求中的参数不能自动传递
  5. 目标资源可以是Servlet、静态资源、外部资源;不可以是WEB-INF下的受保护资源
java">@WebServlet("/servlet1")
public class ServletTest1 extends HttpServlet {public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 重定向到servlet2resp.sendRedirect("bbb");// 重定向到静态资源resp.sendRedirect("aaa.html");// 重定向到外部资源resp.sendRedirect("https://www.baidu.com");}
}@WebServlet("/servlet2")
public class ServletTest2 extends HttpServlet {public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("servlet2执行了");}
}

http://www.ppmy.cn/embedded/164218.html

相关文章

自己安装一台DeepSeek的服务器

找一台还可以的Linux服务器,登录后执行: curl -fsSL https://ollama.com/install.sh | sh 等待安装完成: 执行命令,根据服务器能力安装不同版本的AI模型: ollama run llama3.2 下一步就开始对话吧: llam…

高等数学(上)题型笔记(六)定积分的应用

目录 1 三角函数定积分的结论 2 定积分的微元法(元素法) 2.1 使用条件 2.2 使用步骤 3 定积分的几何应用 3.1 平面图形的面积 3.1.1 直角坐标系的情形 3.1.1.1 X型 3.1.1.2 Y型 3.1.1.3 双型 3.1.1.4 复合:分割型 3.1.1.5 引入参…

分布式电商系统中的API网关架构设计

在分布式电商系统中,API 网关扮演着至关重要的角色,它是系统对外的统一入口,负责请求路由、协议转换、安全认证、流量控制等功能。以下是关于分布式电商系统中 API 网关架构设计的详细内容: 设计目标 统一入口:为所有外…

中国科技新突破:发展态势与未来展望(哪吒2、deepseek、宇树科技等)

一、2025年中国科技领域的重大突破 进入2025年以来,中国在科技和文化领域取得了多项重大突破,这些成就不仅展示了中国在科技创新方面的实力,也为其未来的高质量发展奠定了坚实基础。 (一)《哪吒2》的巨大成功 1. 票…

OS-Genesis:基于逆向任务合成的 GUI 代理轨迹自动化生成

引言 近年来,图形用户界面(GUI)代理(GUI Agents) 在软件自动化、辅助测试和 AI 驱动的任务执行中扮演着越来越重要的角色。然而,当前的 GUI 代理训练仍然面临 高质量数据稀缺 的核心挑战。现有的方法主要依…

设计模式教程:责任链模式(Chain of Responsibility Pattern)

责任链模式(Chain of Responsibility Pattern)是一种常用的设计模式,它属于行为型模式,主要解决的是多个对象处理一个请求时,如何解耦请求的发送者和接收者,以及如何将请求的处理职责分配给不同的对象。 1…

Python----数据结构(栈:列表栈,链栈。初始化,入栈,出栈,获取栈长度,判断是否为空,访问栈顶元素)

一、栈 1.1、概念 栈(stack):又名堆栈,它是一种运算受限的线性表,是一种容器,可存入数据元素、访 问元素、删除元素,它的特点在于只能允许在容器的一端(成为栈顶top),进…

银河麒麟系统安装mysql5.7【亲测可行】

一、安装环境 cpu:I5-10代; 主板:华硕; OS:银河麒麟V10(SP1)未激活 架构:Linux 5.10.0-9-generic x86_64 GNU/Linux mysql版本:mysql-5.7.34-linux-glibc2.12-x86_64.ta…