ServletRequest使用介绍
2024-08-27 06:01:10
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. 转发是一次请求
最新文章
- JAVA 8 Streams
- hdu, KMP algorithm, linear string search algorithm, a nice reference provided 分类: hdoj 2015-07-18 13:40 144人阅读 评论(0) 收藏
- Echart图表入门
- 第九回 Microsoft.Practices.Unity.Interception实现基于数据集的缓存(针对六,七,八讲的具体概念和配置的解说)
- 无法查找或打开pdb文件
- php大力力 [021节]mysql表名在mac下不能大写
- iOS开发swift--函数
- Machine Learning &; Data Mining 资料整合
- js--小结①
- jenkins 构建时,取消构建测试类
- Android开发艺术2之Activity的启动模式
- [Linux] Desktop Management
- BigInteger与BigDecimal
- zookeeper ZAB协议 Follower和leader源码分析
- [mybatis-spring] Transaction 事务/事务处理/事务管理器
- Spring Security(二)
- 【LOJ】#2084. 「NOI2016」网格
- 在Visual Stdio 2012中编译执行JM18.6的方法
- 12月13日 什么是help_method,session的简单理解, find_by等finder method
- python调用百度语音识别接口实时识别