HttpServletRequest对象与RequestDispatcher对象

news2024/9/20 20:24:09

 一、HttpServletRequest对象

1.介绍

在Servlet API中,定义了一个HttpServletRequest接口,它继承自ServletRequest接口,专门用来封装HTTP请求消息。由于HTTP请求消息分为请求行、请求消息头和请求消息体三部分,因此,在HttpServletRequest接口中定义了获取请求行、请求头和请求消息体的相关方法。

2.获取请求行信息的相关信息

当访问Servlet时,会在请求消息的请求行中,包含请求方法、请求资源名、请求路径等信息,为了获取这些信息,在HttpServletRequest接口中,定义了一系列用于获取请求行的方法,如表所示。

3.获取请求消息行信息案例代码 

4.获取请求消息头的相关方法

当请求Servlet时,需要通过请求头向服务器传递附加信息,例如,客户端可以接收的数据类型,压缩方式,语言等等。为此,在HttpServletRequest接口中定义了一系列用于获取HTTP请求头字段的方法,如表所示。

5.读取HTTP请求消息头字段案例代码

6.利用Referer请求头防止“盗链”

二、HttpServletRequest应用

1.获取请求参数及解决中文乱码

2.通过Request对象传递数据

public interface HttpServletRequest extends ServletRequest

在ServletRequest中

a.setAttribute(String name, Object o)

该方法用于将一个对象与一个名称关联后存储进ServletRequest对象中

需要注意的是,如果ServletRequest对象中已经存在指定名称的属性,setAttribute()方法将会先删除原来的属性,然后再添加新的属性。如果传递给setAttribute()方法的属性值对象为null,则删除指定名称的属性,这时的效果等同于removeAttribute()方法。

b.getAttribute(String name)

该方法用于从ServletRequest对象中返回指定名称的属性对象

c.removeAttribute(String name)

该方法用于从ServletRequest对象中删除指定名称的属性

d.Enumeration<String> getAttributeNames()

该方法用于返回一个包含ServletRequest对象中的所有属性名的Enumeration对象

需要注意的是,只有属于同一个请求中的数据才可以通过ServletRequest对象传递数据。

数据传递原理看下面的请求转发。

三、RequestDispatcher对象的应用

1.RequestDispatcher接口

当一个Web资源收到客户端的请求后,如果希望服务器通知另外一个资源去处理请求,这时,除了使用sendRedirect()方法实现请求重定向外,还可以通过RequestDispatcher接口的实例对象来实现。在ServletRequest接口中定义了一个获取RequestDispatcher对象的方法,如表所示。

获取到RequestDispatcher对象后,最重要的工作就是通知其它Web资源处理当前的Servlet请求,为此,在RequestDispatcher接口中,定义了两个相关方法,如表所示

表中列举的两个方法中,forward()方法可以实现请求转发,include()方法可以实现请求包含。

2.请求转发

3.请求包含

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1080797.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android免杀小结

目录 msfvenom 自动生成 自带免杀 工具免杀 Thefatrat backdoor-apk old-fatrat msfVenom嵌入式方法 venom 工具小记 加壳 源码免杀 加壳 源码混淆 数据通信 启动和运行方式修改 对抗反编译 反编译工具崩溃 ZIP文件格式对抗 ZIP通用位伪加密 AndroidManife…

暴涨100万粉仅用一个月,B站内容趋势前线洞察

- 导语 在这个9月&#xff0c;B站涌现多位黑马UP主&#xff0c;有的UP主自入驻B站以来&#xff0c;一个月的时间就涨粉百万晋升为头部UP主&#xff0c;有的UP主因内容受到B站百万年轻人的追捧&#xff0c;展现账号爆发力。 接下来&#xff0c;飞瓜数据&#xff08;B站版&…

智慧工地:助力数字建造、智慧建造、安全建造、绿色建造

智慧工地管理系统融合计算机技术、物联网、视频处理、大数据、云计算等&#xff0c;为工程项目管理提供先进的技术手段&#xff0c;构建施工现场智能监控系统&#xff0c;有效弥补传统监理中的缺陷&#xff0c;对人、机、料、法、环境的管理由原来的被动监督变成全方位的主动管…

将 mysql 数据迁移到 clickhouse (最新版)

一、前驱知识 已经在mysql中插入了海量的数据了&#xff0c;这个时候mysql 承载不了这么大的数据&#xff0c;并且数据只需要查询&#xff0c;修改和删除非常少&#xff0c;并且不需要支持事务&#xff0c;这个时候需要换一个底层存储&#xff0c;这里选用的是 clickhouse 来进…

智能视频分析系统AI智能分析网关V3触发告警图片不显示该如何解决?

AI智能分析网关V3包含有20多种算法&#xff0c;包括人脸、人体、车辆、车牌、行为分析、烟火、入侵、聚集、安全帽、反光衣等等&#xff0c;可应用在安全生产、通用园区、智慧食安、智慧城管、智慧煤矿等场景中。将网关硬件结合我们的视频监控系统EasyCVR一起使用&#xff0c;可…

vue3插件——vue-web-screen-shot——实现页面截图功能

最近在看前同事发我的vue3框架时&#xff0c;发现他们有个功能是要实现页面截图功能。 vue3插件——vue-web-screen-shot——实现页面截图功能 效果图如下&#xff1a;1.操作步骤1.1在项目中添加vvue-web-screen-shot组件1.2在项目入口文件导入组件——main.ts1.3在需要使用的页…

对话天润云CEO吴强,未来所有企业都要用AI重构一遍 | AIGC入局者栏目

近日&#xff0c;铅笔道联合知乎&#xff0c;与天润云&#xff08;又称“天润融通”&#xff09;创始人兼CEO吴强先生深度交流&#xff0c;大模型如何提升客户联络效率以帮助企业完成变革。 吴强认为&#xff1a;“丰富、专业的语料决定了大模型的能力&#xff0c;企业生产过程…

小程序, 多选项

小程序, 多选项 <view class"my-filter-btnwrap"><block wx:for"{{archiveList}}" wx:key"index"><view class"my-filter-btnitem text-ellipsis {{item.checked ? active : }}" data-index"{{index}}" wx…

Vuex的同步存值与取值及异步请求

前言 1.概念 Vuex是一个用于管理Vue.js应用程序中状态的状态管理模式和库。Vue.js是一个流行的JavaScript框架&#xff0c;用于构建用户界面&#xff0c;而Vuex则专门用于管理应用程序的状态&#xff0c;以确保状态在整个应用程序中保持一致和可维护。 2.Vuex的特点&#xf…

uniapp-vue3微信小程序实现全局分享

uniapp-vue3微信小程序实现全局分享 文章目录 uniapp-vue3微信小程序实现全局分享微信小程序官方文档的分享说明onShareAppMessage(Object object)onShareTimeline() uniapp 官方文档的分享说明onShareAppMessage(OBJECT) 实现全局分享代码结构如下share.js文件内容main.js注意…

XML是不是主要用做配置文件?

2023年10月11日&#xff0c;周三下午 这几天发现tomcat的配置文件主要是用XML文件来写的&#xff0c; 于是就有了这个问题。 是的,XML非常适合用来做配置文件。 XML作为配置文件的主要优点: 可读性强。XML使用标签结构组织数据,内容清晰易懂。跨语言和跨平台。XML作为纯文本…

一站式新零售管理系统提供商,数字化收银系统与连锁门店运营优化

在数字化时代&#xff0c;连锁超市行业正面临巨大的转型压力。消费者对购物体验的需求不断提升&#xff0c;线上线下购物的融合趋势明显&#xff0c;同时物流、供应链和库存管理也变得越来越复杂。面对日益激烈的竞争和消费者需求的变化&#xff0c;连锁超市亟需通过数字化手段…

Linux:I/O 5种模型

图片来源&#xff1a;https://pdai.tech/md/java/io/java-io-model.html

手机APP也可以学习Sui啦,通过EasyA开启你的学习之旅

Sui基金会与EasyA合作&#xff0c;开发了一门面向初学者的Sui课程。这一适用于Android和iOS移动端的学习体验&#xff0c;是进入更广泛的Sui社区和生态系统的入口。在这门课程中&#xff0c;学习者将以有趣和互动的方式获得对Sui的基本了解&#xff0c;最终能够在测试网络上部署…

Qt如何实现动态背景-视频背景

前言 需求&#xff1a;加载视频作为视频背景&#xff0c;在上层可以进行图片的动画化&#xff0c;或是进行其他操作。 几种方法&#xff1a; 1、直接将视频弄成一个QDialog&#xff0c; 然后再上层在弄一个QDialog,背景透明即可。但遇到一个问题&#xff0c;QDialog没办法局…

深入探讨芯片制程设备:从原理到实践

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 在现代科技领域&#xf…

FPGA面试题(1)

一.FPGA内部结构 可编程I/OPLL锁相环&#xff08;其作用为&#xff1a;分频&#xff0c;倍频&#xff0c;相位调节、占空比&#xff09;逻辑阵列块LAB&#xff08;每个LAB由16个逻辑器件LE组成&#xff0c;每个LE包括一个查找表LUT和一个RAM构成。Cyclone IV EP4CE6F17C8中包含…

第十二章 磁盘管理

1. 磁盘简介 1.1. 概念 硬盘是由一片或多篇带有磁性的铝合金制的盘片构成&#xff0c;是 一种大容量、永久性的外部存储设备 组成&#xff1a;盘片、马达驱动、缓存、控制电路、接口 图&#xff1a; 1.2. 逻辑结构 磁道&#xff1a;由内到外的同心圆 扇区&#xff1a;半径组成…

jpsall脚本

当一个集群的节点数量增多时&#xff0c;使用jps查看每一个节点的进程这个过程非常繁琐&#xff0c;因此我们可以写一个jpsall脚本&#xff0c;使用循环迭代的方式&#xff0c;在多台远程主机上执行相同的命令&#xff0c;这样就可以节省在每台主机上手动执行命令的时间和精力。…

基于SSM+Vue的在线作业管理系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…