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使用介绍的更多相关文章

  1. servlet基础讲解

    基本知识一.Web结构1.两种应用程序 ①桌面应用程序:QQ.CS.MyEclipse.Office.DW.360.浏览器等必须下载.安装.桌面快捷方式.注册表信息.操作系统后台服务.占用操作系统端口 ...

  2. Servlet基础知识

    基本知识一.Web结构1.两种应用程序 ①桌面应用程序:QQ.CS.MyEclipse.Office.DW.360.浏览器等必须下载.安装.桌面快捷方式.注册表信息.操作系统后台服务.占用操作系统端口 ...

  3. Tomcat服务器配置以及相关配置文件介绍

    摘自:http://blog.163.com/ny_lonely/blog/static/18892427320136925044357/ context.xml 文件   配置属性说明     用于 ...

  4. JSONP和CORS两种跨域方式的简单介绍和解决方案实例

    随着软件开发分工趋于精细,前后端开发分离成为趋势,前端同事负责前端页面的展示及页面逻辑处理,服务端同事负责业务逻辑处理同时通过API为前端提供数据也为前端提供数据的持久化能力,考虑到前后端同事开发工具 ...

  5. Servlet基础(一) Servlet简介 关键API介绍及结合源码讲解

    Servlet基础(一) Servlet基础和关键的API介绍 Servlet简介 Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中. Servlet容器负责Servl ...

  6. EL表达式介绍

    EL 全名为Expression Language EL 语法很简单,它最大的特点就是使用上很方便.接下来介绍EL主要的语法结构: ${sessionScope.user.sex} 所有EL都是以${ ...

  7. XPATH 注入的介绍与代码防御

    0x01 介绍 软件未正确对 XML 中使用的特殊元素进行无害化处理,导致攻击者能够在终端系统处理 XML 的语法.内容或命令之前对其进行修改.在 XML 中,特殊元素可能包括保留字或字符,例如“&l ...

  8. Filter简单介绍

    一.简单介绍 Filter也称为过滤器,WEB开发者通过Filter技术.对webserver管理的全部web资源:比如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截.从而实 ...

  9. JSONP和CORS两种跨域方式的优缺点及使用方法原理介绍

    随着软件开发分工趋于精细,前后端开发分离成为趋势,前端同事负责前端页面的展示及页面逻辑处理,服务端同事负责业务逻辑处理同时通过API为前端提供数据也为前端提供数据的持久化能力,考虑到前后端同事开发工具 ...

随机推荐

  1. zookeeper 回调和Watcher

    ZooKeeper客户端可以对指定节点设置指定Watcher,当服务器指定节点发生变化是,客户端会收到服务器的通知,然后客户端可以执行相应Watcher的代码. 默认ZooKeeper内置了一个wat ...

  2. ubuntu桌面版修改屏幕刷新率之后无法进入桌面(一直卡在输入密码的界面)的解决办法

    deb https://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiversedeb-src https://mir ...

  3. 2020DASCTF八月浪漫七夕战

    安恒大学 注入点在邮箱注册那里,无法复现了,提一下 ezflask 源代码 #!/usr/bin/env python # -*- coding: utf-8 -*- from flask impor ...

  4. [Abp vNext 源码分析] - 21. 界面与文字的本地化

    一.简介 ABP vNext 提供了全套的本地化字符串支持,具体用法可以参考官方使用文档.vNext 本身是对 Microsoft 提供的本地化组件进行了实现,通过 JSON 文件提供本地化源,这一点 ...

  5. Java基础系列-Optional

    原创文章,转载请标注出处:https://www.cnblogs.com/V1haoge/p/10755368.html 一.概述 Optional的引入是为了解决null的问题,那么到底是解决nul ...

  6. Cypress系列(60)- 运行时的截图和录屏

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 背景 在测试运行时截图和录屏能够在测试错 ...

  7. LinkedList,ArrayList,HashMap,TreeMap

    hashMap是无序的,TreeMap是有序的(hashmap是一个链表,而treemap实现了sortedmap()接口所以有序,其实现同时实现比较器) hashSet的底层是根据HashMap来存 ...

  8. java.lang.illegalArgumentException异常

    今天在使用spring3.2的时候,配置好注解开发后,运行出现异常 java.lang.illegalArgumentException 经查为 JRE 版本域spring3.2不兼容所致, 将项目J ...

  9. 简化ETL工作,编写一个Canal胶水层

    前提 这是一篇憋了很久的文章,一直想写,却又一直忘记了写.整篇文章可能会有点流水账,相对详细地介绍怎么写一个小型的"框架".这个精悍的胶水层已经在生产环境服役超过半年,这里尝试把耦 ...

  10. 065 01 Android 零基础入门 01 Java基础语法 08 Java方法 02 带参无返回值方法

    065 01 Android 零基础入门 01 Java基础语法 08 Java方法 03 带参无返回值方法 本文知识点:带参无返回值方法 说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进 ...