Servlet总结02——请求转发

【Servlet笔记02】Servlet乱码问题,请求转发和重定向,Cookie和Session会话技术的介绍及使用 一、Servlet相关组件 1.1、HttpServletRequest接口 HttpServletRequest接口是位于【javax.servlet.http】包下(对应servlet-api.jar包依赖),继承自【ServletRequest】接口。 HttpServletRequest接口定义了一些专门用于处理Http请求相关的方法,例如:获取Http请求参数、获取Http请求方式、请求头、请求地址等等。 HttpServletRequest接口作用:用于封装每个Http的请求相关信息。 阅读详情

我们很多时候要对请求进行转发,例如:

1.servlet处理完相关业务后,将请求转发到一个jsp页面;

2.基于mvc模式,定义一个servlet充当控制器,将请求转发个特定servlet或jsp;

在Servlet中我们可以使用javax.servlet.RequestDispatcher来处理请求转发。

 

(一)RequestDispatcher

requestDispatcher对象由servlet容器创建,用于封装一个由路径所标识的服务器资源。

转发的动作包括:

1) public void forward(ServletRequest request, ServletResponse response) throws ServletException, IOException;

该方法必须在响应被提交给客户端之前调用,否则抛出IllegalStateException异常。forward进入后,原先的Servlet将终止执行。

2) public void include(ServletRequest request, ServletResponse response) throws ServletException, IOException;

include进入被调用的对象后,执行完相关操作后仍然会继续原先的servlet。

note:注意forward和include的区别。

 

(二)获得RequestDispatcher对象。

从ServletRequest对象获取:

public RequestDispatcher getRequestDispatcher(String path);

从ServletContext对象获取:

public RequestDispatcher getRequestDispatcher(String path);

public RequestDispatcher getNamedDispatcher(String name);

note:servletRequest和servletContext有同样的方法:getRequestDispatcher,那么区别是什么?

区别:

servletRequest的getRequestDispatcher方法,参数path可以以斜杠(/)开头,代表当前上下文根的路径。

如果不用斜杠开头,则相对于当前Servlet的路径。

servletContext的getRequestDispatcher方法,参数path必须要以斜杠(/)开头。

 

(三)sendRedirect和forward的区别

sendRedirect是HttpServletResponse的方法。他的工作原理是:

关键点:调用sendRedirect方法,会在响应中设置locaction响应报头,它告诉浏览器再访问一次directory的新资源。

这对于用户来说是透明的,一切都是有浏览器完成的。用户只是发现地址栏发生了变化。

整个过程有两次请求。

 

而forward的原理如下:

关键点:这个过程对于用户而言更透明,他并不知道服务端内部是哪个servlet处理了请求,甚至地址栏都没有任何变化。

这个过程只有一次请求。

 

优快云余额充值前必读:这5个隐藏条款,90%的开发者都忽略了(附iOS内购避坑指南) 本文揭示了优快云余额充值中90%开发者忽略的5个隐藏条款,包括不可退款规则、iOS内购限制、账号安全责任等关键内容,特别提供了iOS内购避坑指南,帮助开发者避免资金损失和账号风险。 阅读详情

相关推荐

开源大模型本地部署实战:Llama、DeepSeek、Qwen选型与工程落地指南

大语言模型(LLM)本地部署已成为AI工程化核心环节,其本质不是比拼参数量或榜单分数,而是考察模型架构、推理引擎、量化支持、IDE集成与多模态扩展能力的系统性适配。Llama以纯净Transformer结构成为通用底座,依赖llama.cpp和GGUF量化实现跨平台轻量推理;DeepSeek深度优化代码与数学推理,通过原生OpenAPI、FlashAttention-2及tensor parallelism显著降低API延迟;Qwen则采用模块化设计,支持视觉编码器(Qwen-VL)、生物计算(Qwen-B

weixin_29952383的博客 396

理解Servlet中的请求转发和重定向

请求转发forward() 请求转发:一种在服务器内部的资源跳转方式 步骤: 通过request对象获取请求转发器对象:RequestDispatcher getRequestDispatcher(String path) 使用RequestDispatcher对象来进行转发:forward(ServletRequest request, ServletResponse response) 代...

weixin_43402591的博客 332

C# 调用halcon中visualize_object_model_3d显示点云

3.1 判断线程是否为空,如果为空,则新创建,如果不为空,则中断线程,清空窗口后再次执行创建操作3.2 创建:调用show()方法实例化显示类的对象,传入显示参数,将线程testvisual 绑定 在 类对象的action方法上(此处action方法内部,只调用了visualize_object_model_3d算子)3.3 启动线程。

weixin_42362219的博客 1403

转发和重定向的后续代码的执行情况

问题:在Servlet的service()方法和Filter的doFilter()方法中,我们可能会用到转发和重定向,那么在转发和重定向的代码执行后,其后续的代码是否还执行呢? 答:会执行。 原因: 重定向只是向response中添加了一条重定向地址,并不会立即响应给浏览器,只有当doFilter()或者service()执行完毕才会将响应信息封装起来发送给浏览器; 同理,当执行请求转发时,会先到转发页面执行,执行完毕后返回继续执行后续代码,直到方法执行结束。 总结:服务器接收到请求,会先后执行Filte

zxc412728的博客 1862

使用再生龙还原镜像文件到硬盘

1. 把制作好的再生龙光盘插入需要的电脑,开机按F4使用再生龙启动2. 选择默认的:Clonezailla live(Default settings,VGA 800*600),然后等待几分钟 3. 选择语言:简体中文 4. 选择不修改键盘映射 5. 选择使用再生龙          6. 选择硬盘/分区(存到/来自)镜像文件,此选项既可以制作镜像,也可以恢复镜像。 7. 使用本机的分区     ...

weixin_42168893的博客 1万+

GPS系统跟踪捕获算法的Verilog实现在FPGA

本文将介绍GPS系统中的跟踪捕获算法,并提供该算法的Verilog实现在FPGA上运行的源代码。常用的方法是将接收到的信号与一个本地振荡器产生的参考信号进行混频,然后使用带通滤波器提取出希望得到的频率分量。码跟踪的目的是通过检测接收到的信号中的码片序列来实现对导航数据的解调。以上是一个简化的GPS系统跟踪捕获算法的Verilog实现,其中包含了时间检测、频率跟踪和码跟踪三个模块。GPS信号由载波频率和导航数据组成。跟踪捕获算法的目标是通过对接收到的信号进行处理,从而获取到准确的载波频率和导航数据。

PixelEnigma的博客 1108

Servlet的请求转发

servlet请求转发

wfsfd13123的博客 1344

【BlueDroid】蓝牙音乐协议分析之A2DP和AVRCP连接流程(超详细)

AVCTP协议描述了蓝牙设备间Audio/Video的控制信号交换的格式和机制,他是一个总体的协议,具体的控制信息由其指定的协议(AVRCP)实现,AVCTP协议本身只指定控制Command和Response的总体的格式;这个过程中对应了Event中的btavrcp_play_status_changed_callback和btavrcp_play_position_changed_callback;上述为AVCTP-Control建立L2CAP连接的Command,对应H4的Sent (0x00);

风云说通信 7315

重定向和请求转发的概念和区别

在请求转发过程中,设置域数据(Attribute)的作用是将数据存储在请求对象中,以便在转发的目标Servlet或JSP页面中获取和使用这些数据。请求转发不能站外跳转,只能当前的项目下的资源内进行跳转【请求转发】,可以转发域数据和属性值,也就是说所有数据都可以在转发后的地址获取到,转发时地址栏网站不发生改变。3. 隐藏URL和保持请求状态:请求转发是在服务器内部进行的,对客户端是透明的,因此可以隐藏目标资源的URL,同时保持请求状态,比如保持用户的登录状态。采用的是相对定位的方式,在当前工程路径下寻找。

qq_63749263的博客 245

高通平台WIFI学习-- WCN7851 三频 2X2 MIMO DBS HBS Wi-Fi 7介绍

WCN7851是支持Wi-Fi 7和蓝牙5.4的三频SoC芯片,具有以下核心特性:采用NSP334封装,支持2.4GHz/5GHz/6GHz三频段并发操作,最高速率达5.8Gbps;集成MU-MIMO、4096QAM调制技术,6GHz频段支持320MHz带宽;提供PCIe Gen3接口和低功耗设计,兼容多种无线标准。电气特性包括1.8V/1.2V可编程GPIO、76.8MHz时钟源要求,以及详细的射频性能参数。该芯片通过多链路操作和动态频率选择等先进功能,实现高性能无线连接。

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 1278

区块链技术概述:从比特币到Web3.0

区块链技术正重塑数字世界的信任机制。本文系统梳理了区块链的发展路径:从比特币的PoW共识和UTXO模型,到以太坊的智能合约和账户体系,直至Web3.0的去中心化互联网愿景。文章详细解析了区块链的核心特性(去中心化、不可篡改等)和数据结构,通过流程图展示了比特币交易生命周期和智能合约执行流程,并对比了Web2.0与Web3.0的关键差异。最后,用Python代码实现了包含区块类、交易处理和挖矿机制的简易区块链系统,为理解区块链底层原理提供了实践参考。

闲人编程的博客 456

java Web中页面跳转方式之请求转发

java Web中页面跳转方式之请求转发 1、在一个请求中跨越多个Servlet 2、多个Servlet在一个请求中,他们共享request对象。就是在Servlet01中setAttribute()保存数据在Servlet02中由getAttribute()取出数据 3、在Servlet01转发到Servlet02,那么整个请求都是由Serv...

这里将承载一段最初的记忆 417

YOLOv8改进 | Conv篇:基于FasterBlock与C2f结构的二次创新,参数量下降70万【附保姆级代码】

通过引入FasterBlock二次创新C2f结构,我们成功地对YOLOv8模型进行了优化,显著降低了其参数量,并提升了推理速度,而精度保持不变甚至有所提升。该模型在多个实际应用场景中展现出了优异的性能,尤其是在嵌入式设备、移动端和自动驾驶等领域,具有广泛的应用潜力。未来的研究将进一步优化模型结构,探索更多的应用场景,为目标检测技术的发展做出贡献。

一键难忘的博客 3215

Web基础笔记Day02 请求转发与重定向,路径问题,Servlet线程安全

请求转发与重定向 请求转发与重定向均是指的请求的跳转方式。 用户提交请求需要访问服务端的资源1,而资源1又需要访问资源2,那么由资源1向资源2的跳转的两种方式:请求转发(服务器内跳转)与重定向(服务器外跳转)。 重定向可以跳转到其他应用上 请求转发:资源二可以获取请求中数据 修改Register的方法 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOExcep

qq_53157982的博客 519

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

servlet请求转发

servlet请求转发 模拟get请求的请求转发:Servlet文件Servlet01.java-------->Servlet文件Servlet02.java Servlet01.java package com.mage.httpServlet; import java.io.IOException; import javax.servlet.ServletExce...

dudukawa的博客 230

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【Servlet02】请求转发与重定向、cookie、session (获取登录时间、商品浏览记录,丑陋简单购物车)

【Servlet】请求转发和重定向 请求转发和重定向

噗通的博客 1167

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

请求转发

1.web.xml文件 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.s...

weixin_42371832的博客 188

全网最详细servlet02(跟着宝哥学java:servlet第二天):Request对象详解、Response对象详解、get和post的区别、请求转发请求包含重定向的区别、所有路径的写法

servlet02(跟着宝哥学java:servlet第二天):Request对象详解、Response对象详解、get和post的区别、请求转发请求包含重定向的区别、所有路径的写法 全网最详细

跟着宝哥学java的博客 4725

<7>Servlet请求转发

  请求转发是指,服务器收到请求后,从一次资源跳转到另一个资源的操作。 示例:在Servlet01代码中进行Get请求,转发到Servlet02请求。   Servlet01代码: public class Servlet01 extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException

dizzy256的博客 256

JavaWeb Servlet程序 请求的转发

JavaWeb Servlet程序 请求的转发

m0_59586434的博客 348

2021-10-02

请求转发的特点 浏览器的地址没有发生变化 他们是一次请求 他们共享Request域中的数据 可以转发到WEB-INF目录下,(注:WEB-INF此目录是受保护的,不能直接在浏览器地址栏里面输入/WEB-INF/****进行访问) 不能访问工程以外的路径资源,比如说无法跳转到百度页面 Servlet01的代码如下: public class Servlet01 extends HttpServlet { @Override protected void doGet(HttpServletR

weixin_46417021的博客 96

JavaWeb-05-JSP规范-03-Servlet和JSP文件分工

JavaWeb-05-JSP规范-03-Servlet和JSP文件分工 1.Servlet和JSP之间的分工 Servlet:负责处理业务并得到【处理结果】---->大厨 JSP:不负责处理业务,主要人物是将Servlet中的【处理结果】写入响应体---->传菜员 2.Servlet和JSP之间的调用关系 Servlet工作完毕后,一般通过请求转发方式,向Tomcat服务器申请调用JSP 3.Servlet和JSP之间的数据共享 一般通过【请求作用域对象】来实现数据共享。 Servlet将

TSCCG的博客 276

Servlet03_ServletContext

1.简介: servletContext接口是Servlet中最大的一个接口,呈现了web应用的Servlet视图。ServletContext实例是通过 getServletContext()方法获得的,由于HttpServlet继承GenericServlet的关系,GenericServlet类和HttpServlet类同时具有该方法。每个应用都会有一个ServletContext对象与之关联,当容器分布在多个虚拟机上时,web应用在所分布的每个虚拟机上都拥有一个ServletContext实例。缺省

beyond_csdn的博客 117
上一篇: servlet总结系列1 ---servlet的主要接口、类
下一篇: Servlet总结03——会话跟踪
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值