通过request对象获得请求行

  • 获得客户端请求方式:String getMethod();
  • 获得请求的资源:
    • String getRequestURL();
    • String getQueryString();--用于获取get提交url地址后的参数字符串(username=张三&password=123)
    • String getContextPath();****重要 重要 重要--用于获取请求的web应用的名称
        // 获得请求方式
String method = request.getMethod(); // 获得请求资源相关的内容
StringBuffer requestURL = request.getRequestURL();
String requestURI = request.getRequestURI();
System.out.println("URI=" + requestURI + "\r\nURL=" + requestURL); // 获得web应用的名称
String contextPath = request.getContextPath();
System.out.println("web应用名称为:"+contextPath); //获得地址后的参数字符串
String queryString = request.getQueryString();
System.out.println(queryString);

注意:request可以获得访问客户端的一些信息,例如:

request.getRemoteAddr();--获得访问的客户端的ip地址

通过request获得请求头

String getHeader()

        // 获得指定的头
String header = request.getHeader("User-Agent");
System.out.println(header); // 获得所有头的名称
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
String headerName = headerNames.nextElement();
String headerValue = request.getHeader(headerName);
System.out.println(headerName + ":" + headerValue);
}

referer头信息的作用:意思是执行该次访问的来源,可以做防盗链

通过request获得请求体

        response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8"); // 获得单个表单值
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println("username=" + username + ";password=" + password); // 获得多个表单的值
String[] hobbies = request.getParameterValues("hobby");
for (String hobby : hobbies) {
System.out.println(hobby);
} // 获得所有请求参数的名称,该方法很少用
Enumeration<String> paramNames = request.getParameterNames();
while (paramNames.hasMoreElements()) {
System.out.println(paramNames.nextElement());
} // Map<String, String[]> getParameterMap()
// 获得所有的参数,分装在一个map中
Map<String, String[]> parameterMap = request.getParameterMap();
for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) {
String key = entry.getKey();
String[] values = entry.getValue(); // 值是一数组,还要遍历
for (String value : values) {
System.out.println(key + ":" + value);
}
}

request的其他功能

request是一个域对象

request也是一个存储数据的区域对象,所以也具有以下方法:

  • setAttribute(String name, Object o)
  • getAttribute(String name)
  • removeAttribute(String name)

request完成请求转发

  1. 获得请求转发器--path是转发的地址

    RequestDispather getRequestDispather(String path)
  2. 通过转发器对象转发

    requestDispather.forward(ServletRequest request, ServletResponse response)
        //Servlet1将请求转发给Servlet2
//1获得请求转发器对象,由于是在服务器内部进行的转发,所以下面写的地址不是/WEB15/servlet2(客户端地址),而是/servlet2(服务器端地址)
RequestDispatcher dispatcher = request.getRequestDispatcher("/servlet2");
//2执行转发的方法
dispatcher.forward(request, response);

注意

  • 转发的地址是不会变的,因为是服务器内部进行的,客户端并不知道,所以客户端的地址不会变。
  • 每次访问都会有一对新的requestresponse对象,这对对象是服务器帮我们创建的。
  • request的作用范围:一次请求

Java Web 之HttpServletRequest对象初识的更多相关文章

  1. java web学习总结(十) -------------------HttpServletRequest对象

    一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...

  2. java web 学习十(HttpServletRequest对象1)

    一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...

  3. Java web 中的HttpServletRequest对象

    一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...

  4. Java Web学习总结(7)——HttpServletRequest对象

    一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...

  5. [原创]java WEB学习笔记14:JSP的9 个隐含对象 及 JSP 的基本语法

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  6. [原创]java WEB学习笔记08:HttpServletRequest & ServletRequest

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  7. Java Web学习总结(5)HttpServletRequest

    一,HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...

  8. java web HttpServletRequest

    一.HttpServletRequest介绍 HttpServletRequest 对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,通过这个对象提供的方法,可以获得客户端请求的所有信息. ...

  9. httpServletRequest对象、filter、servlet、servlet容器、catalina、tomcat、以及web容器之间的关系

    学习servlet的时候经常感到疑惑 HttpServletRequest是服务器创建的?还是servlet容器创建的? 过滤器是服务器创建的?还是servlet容器创建的? serlet容器和tom ...

随机推荐

  1. Windows定时任务+bat文件+WinRar处理Mysql数据库的定时自动备份

    服务器环境 Windows Server 2003 ,服务器上采用的是IIS+mysql的集成工具phpStudy.MySQL的安装目录D:\phpStudy4IIS , WinRAR 安装目录 C: ...

  2. 如何把vue.js项目部署到服务器上

    如何把vue.js项目部署到服务器上面,我用的是tomcat服务器 1-改一下config/index.js文件,如下图,把assetsPublicPath: './', productionSour ...

  3. PHP垃圾回收深入理解

    转摘于http://www.cnblogs.com/lovehappying/p/3679356.html PHP是一门托管型语言,在PHP编程中程序员不需要手工处理内存资源的分配与释放(使用C编写P ...

  4. PHP csv导出数据 (二)

    全部导出和时间导出 html代码,全程并不需要引用什么插件 <include file="public@header"/> <link href="__ ...

  5. python通过post提交数据的方法

    python通过post提交数据的方法 本文实例讲述了python通过post提交数据的方法.分享给大家供大家参考. 具体实现方法如下:     # -*- coding: cp936 -*- imp ...

  6. Gogs 安装 - 本地安装,容器安装

    文章目录 安装 Gogs 本地安装 前提条件: 数据库 git 创建 git 用户 SSH 服务器 安装 升级 配置及运行 配置 运行 Gogs 服务 在线安装 Gogs 后台运行 gogs 通过 d ...

  7. Vagrant 入门 - 配置

    原文地址 现在我们已经有了一个运行 Ubuntu 的虚拟机,并且可以在宿主机上编辑文件并自动同步到虚拟机.现在让我们安装一个 web 服务器,通过服务器访问这些文件. 可以通过 SSH 进入并安装一个 ...

  8. PHP Yii框架中使用smarty模板

    第一种方法 按照YII系统的办法生成视图觉得有点麻烦,觉得用smarty更省事.尝试着把smarty模板加进来了. date_default_timezone_set("PRC") ...

  9. [Linux] 004 安装

    1. 安装欢迎界面 Install or upgrade an existing system 安装或升级现有系统 Install system with basic video driver 安装过 ...

  10. spring的4种事务特性,4种隔离级别,7种传播行为

    spring事务: 什么是事务: 事务逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败. 事务特性(4种): 原子性 (atomicity):强调事务的不可分割. 一致性 (c ...