ServletRequest使用介绍
ServletRequest:
定义将客户端请求信息提供给某个 servlet 的对象;servlet 容器创建 ServletRequest 对象,并将该对象作为参数传递给该servlet的service方法 ;

通过文档阅读可以看到HttpServletReuqest不是相关请求的顶级接口,它继承自父接口——ServletRequest:

HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息;
通过Request对象进行的常用操作:
- 获取客户机信息
- 获取请求头信息
- 获取请求参数
- 利用请求域传递对象
获取请求行信息
API介绍
String getMethod() 获取请求方式的类型 String getRequestURI() 获取请求行中的资源名部分:/项目名/资源名 StringBuffer getRequestURL() 获取客户端发出请求完整URL 如http://localhost:8080/项目名:资源名
注:
uri: 统一资源标识符,用来标识一个资源,资源路径(相当于身份证)
url: 统一资源定位符,是一种具体的URI,可以用来标识一个资源.并且指明了如何定位一个资源(相当于身份证中的地址) String getProtocol() 获取当前协议的名称和版本 String getRemoteAddr() 获取客户端的IP地址
获取请求头信息
API介绍
String getHeader(String name) 以String 的形式返回指定请求头的值 Enumeration getHeaderNames() 返回此请求包含的所有头名称的枚举
获取请求参数
API介绍
String getParameter(String name) 根据表单的name属性 获取对应的值 String[] getParameterValues(String name) 获取name相同的所有value 如复选框 Map getParameterMap() 参数名作为key,参数值作为value,封装到map中 void setCharacterEncoding(String env) 设置请求体的编码
注意:获取请求参数之后,调用setCharacterEncoding方法无效
其他作用
获取工程名字
API介绍
String getContextPath() 获取工程名字
获取当前
- API介绍
String getServletPath() 获取获得客户端所请求的脚本文件的文件路径
如果请求路径是:http://localhost:8080/mytest/demo,request.getContextPath()得到的是:/mytest,request.getServletPath()得到的是:/demo;request.getRequestURI()得到的是:/mytest/demo;request.getRequestURL()得到的是:http://localhost:8080/mytest/demo;
作为域对象
- 域对象是一个容器,这种容器主要用于servlet与servlet之间的数据传输使用的;request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据
- API介绍
void setAttribute(String name, Object o) 设置数据到request域 Object getAttribute(String name) 从request域获取数据 void removeAttribute(String name) 从request域移除数据
请求转发
- 一种在服务器内部的资源跳转方式
- API介绍
RequestDispatcher getRequestDispatcher(String path) 获取请求转发器(request对象方法) void forward(ServletRequest request, ServletResponse response) 将请求转发到另一个资源(servlet)上(RequestDispatcher对象的方法)
- 使用步骤
1. 通过request对象获取请求转发器对象:RequestDispatcher getRequestDispatcher(String path)
2. 使用RequestDispatcher对象来进行转发:forward(ServletRequest request, ServletResponse response)
- 特点
1. 浏览器地址栏路径不发生变化
2. 只能转发到当前服务器内部资源中
3. 转发是一次请求
ServletRequest使用介绍的更多相关文章
- servlet基础讲解
基本知识一.Web结构1.两种应用程序 ①桌面应用程序:QQ.CS.MyEclipse.Office.DW.360.浏览器等必须下载.安装.桌面快捷方式.注册表信息.操作系统后台服务.占用操作系统端口 ...
- Servlet基础知识
基本知识一.Web结构1.两种应用程序 ①桌面应用程序:QQ.CS.MyEclipse.Office.DW.360.浏览器等必须下载.安装.桌面快捷方式.注册表信息.操作系统后台服务.占用操作系统端口 ...
- Tomcat服务器配置以及相关配置文件介绍
摘自:http://blog.163.com/ny_lonely/blog/static/18892427320136925044357/ context.xml 文件 配置属性说明 用于 ...
- JSONP和CORS两种跨域方式的简单介绍和解决方案实例
随着软件开发分工趋于精细,前后端开发分离成为趋势,前端同事负责前端页面的展示及页面逻辑处理,服务端同事负责业务逻辑处理同时通过API为前端提供数据也为前端提供数据的持久化能力,考虑到前后端同事开发工具 ...
- Servlet基础(一) Servlet简介 关键API介绍及结合源码讲解
Servlet基础(一) Servlet基础和关键的API介绍 Servlet简介 Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中. Servlet容器负责Servl ...
- EL表达式介绍
EL 全名为Expression Language EL 语法很简单,它最大的特点就是使用上很方便.接下来介绍EL主要的语法结构: ${sessionScope.user.sex} 所有EL都是以${ ...
- XPATH 注入的介绍与代码防御
0x01 介绍 软件未正确对 XML 中使用的特殊元素进行无害化处理,导致攻击者能够在终端系统处理 XML 的语法.内容或命令之前对其进行修改.在 XML 中,特殊元素可能包括保留字或字符,例如“&l ...
- Filter简单介绍
一.简单介绍 Filter也称为过滤器,WEB开发者通过Filter技术.对webserver管理的全部web资源:比如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截.从而实 ...
- JSONP和CORS两种跨域方式的优缺点及使用方法原理介绍
随着软件开发分工趋于精细,前后端开发分离成为趋势,前端同事负责前端页面的展示及页面逻辑处理,服务端同事负责业务逻辑处理同时通过API为前端提供数据也为前端提供数据的持久化能力,考虑到前后端同事开发工具 ...
随机推荐
- Linux实战(5):Centos8安装python
Centos8正式版已经发布了,已经尝鲜的小伙伴们会发现与其他Linux发行版不同,CentOS 8默认不安装Python.接下来的操作指导大家如何安装python3. 转自链接 安装python3 ...
- zabbix-自动发现并监控
创建自动发现规则 添加 ip 范围 客户端安装zabbix-agent [root@node1 ~]# docker load -i zabbix_agent.tar.gz 23f7bd114e4a: ...
- 11.深入k8s:kubelet工作原理及源码分析
转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 源码版本是1.19 kubelet信息量是很大的,通过我这一篇文章肯定是讲不全的,大家可 ...
- 记一次"截图"功能的项目调研过程!
目录 项目需求 功能调研 AWT Swing Html2Image PhantomJS Headless Chrome 实现方案 结论 项目需求 最近,项目接到了一个新需求,要求对指定URL进行后端模 ...
- 性能测试Jmeter安装
一. Jmeter下载地址: http://jmeter.apache.org/download_jmeter.cgi 二. JDK下载地址: https://www.oracle.com/tec ...
- 【Linux】一些文件限制配置
linux资源限制配置文件是/etc/security/limits.conf:限制用户进程的数量对于linux系统的稳定性非常重要. limits.conf文件限制着用户可以使用的最大文件数,最大线 ...
- Matlab中界面和注释---中英文切换问题
有参考网页后实践的心得: Matlab中界面和注释---中英文切换问题 网上有大把的方法,并不是一一有效,这里介绍一种比较简单的方法我自己的电脑挺好用的,大家的电脑matlab需要你们自己实验了. 1 ...
- VID和PID
今天很在一份datasheet上突然看到 VID 和 PID 很奇怪!!还不是很懂!!! 参考:https://blog.csdn.net/gaojinshan/article/details/787 ...
- P4821 [中山市选]生成树
题目链接 我们可以看一下题目中给的这张图. 首先,树是没有环的,所以我们要把所有的环上的边都删去一条. 我们可以现在每个五边形上删去一条边. 但删完之后我们会发现,里面还有一圈. 这时候,我们就要在这 ...
- 极客 Play 玩 Terminal——GitHub 热点速览 Vol.40
作者:HelloGitHub-小鱼干 多少人以为暗黑的终端便是一名程序员的工作台,其实上,终端可以不只是一个输入 command 的界面,也可以是本周特推 kb 一样,面向极客的极简命令行知识库管理器 ...