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. 转发是一次请求

  

最新文章

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

热门文章

  1. OKR工作法
  2. 8.ExecutorService-执行器服务
  3. Unity 如何在窗口大小可以随意改变的情况下让游戏世界完整的显示在镜头中
  4. C# 中居然也有切片语法糖,太厉害了
  5. C语言实现数据结构的邻接矩阵----数组生成矩阵、打印、深度优先遍历和广度优先遍历
  6. iOS14剪切板探究,淘宝实现方法分析
  7. WordPress用户角色权限
  8. RabbitMQ小记(一)
  9. A4988两相四线步进电机驱动模块使用经验
  10. 2018年10月份编程语言排行榜(来自TIOBE Index for October 2018)