1、request原理

requst对象是由服务器创建的,是来获取请求消息的,而response是来设置响应消息的

2、request对象继承体系结构

ServletRequest (接口)
        |    继承
HttpServletRequest (接口)
        |    实现
org.apache.catalina.connector.RequestFacade 类(tomcat)

3、request功能

 3.1获取请求消息数据
        3.1.1获取请求行数据
            GET /day/demo?name=zhangsan HTTP/1.1(下面的方法有具体解释)
            方法:
                ①获取请求方式 :GET
                    String getMethod()  
                ②获取虚拟目录:/day
                    String getContextPath()
                ③获取Servlet路径: /demo
                    String getServletPath()
                ④获取get方式请求参数:name=zhangsan
                    String getQueryString()
                ⑤获取请求URI:/day/demo
                    String getRequestURI():        /day/demo
                    StringBuffer getRequestURL()  :http://localhost/day/demo

* URL:统一资源定位符 : http://localhost/day/demo   中华人民共和国
                    * URI:统一资源标识符 : /day/demo               共和国
                ⑥获取协议及版本:HTTP/1.1
                    String getProtocol()

⑦ 获取客户机的IP地址:
                    String getRemoteAddr()

3.1.2获取请求头数据

方法:
                         String getHeader(String name):通过请求头的名称获取请求头的值
                         Enumeration<String> getHeaderNames():获取所有的请求头名称

3.1.3获取请求体数据

请求体:只有POST请求方式,才有请求体,在请求体中封装了POST请求的请求参数
                步骤:
                         ①获取流对象
                             *  BufferedReader getReader():获取字符输入流,只能操作字符数据
                             *  ServletInputStream getInputStream():获取字节输入流,可以操作所有类型数据

②再从流对象中拿数据

 3.2其他功能

3.2.1获取请求参数通用方式

不论get还是post请求方式都可以使用下列方法来获取请求参数

① String getParameter(String name):根据参数名称获取参数值 username=qwer&password=123456

②String[] getParameterValues(String name):根据参数名称获取参数值的数组 hobby=xx&hobby=game

③Enumeration<String> getParameterNames():获取所有请求的参数名称

④Map<String,String[]> getParameterMap():获取所有参数的map集合

                 3.2.2请求转发:一种在服务器内部的资源跳转方式

(一)步骤

①通过request对象获取请求转发器对象:RequestDispatcher getRequestDispatcher(String path)

②使用RequestDispatcher对象来进行转发:forward(ServletRequest request, ServletResponse response)

(二)特点
                       ①浏览器地址栏路径不发生变化
                       ②只能转发到当前服务器内部资源中。
                       ③转发是一次请求

(三)共享数据
                        ☆ 域对象:一个有作用范围的对象,可以在范围内共享数据
                        ☆ request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据
                        ☆ 方法:
                                    1. void setAttribute(String name,Object obj):存储数据
                                    2. Object getAttitude(String name):通过键获取值
                                    3. void removeAttribute(String name):通过键移除键值对

(四)获取ServletContext
                         ServletContext getServletContext()

Request简单介绍相关推荐

  1. django中使用celery简单介绍

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 本章节我们重点在于实现,如何存储任务的结果. 我们将任务函数改为: from celery_demo.celery im ...

  2. IOS学习之 网络编程(10)--简单介绍ASI框架的使用

    转载自 http://www.cnblogs.com/wendingding/p/3950027.html 说明:本文主要介绍网络编程中常用框架ASI的简单使用. 一.ASI简单介绍 ASI:全称是A ...

  3. gitee合并分支_使用Gitee进行协作翻译的简单介绍

    协作翻译的Gitee使用介绍 由于Github国内访问不稳定,加之大部分同学应该都在国内,所以我使用了Gitee进行协作.(github的操作也是完全一样的) 很多同学说不知道怎么创建分支,也不知道怎 ...

  4. Django - Django框架 简单介绍

    Django框架 简单介绍 本文地址: http://blog.csdn.net/caroline_wendy/article/details/29172271 1. 介绍 Django是一个开放源码 ...

  5. CAS单点登录原理简单介绍

    1. SSO简介 1.1 单点登录定义 单点登录(Single sign on),英文名称缩写SSO,SSO的意思就是在多系统的环境中,登录单方系统,就可以在不用再次登录的情况下访问相关受信任的系统. ...

  6. REST API 概念的简单介绍

    REST API 概念的简单介绍 最近发现很多人不了解REST是什么,我综合了下网上的文章,摘录了一下. 首先要明确一点:REST(Representational State Transfer,表述 ...

  7. java过滤器应用实例_Servlet过滤器Filter的简单介绍(附示例)

    本篇文章给大家带来的内容是关于Servlet过滤器Filter的简单介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 特点 1)Filter是依赖于Servlet容器,属 ...

  8. ASIHTTPRequest类库的简单介绍

    1.概述 使用iOS SDK中的HTTP网络请求API,相当的复杂,调用很繁琐,ASIHTTPRequest就是一个对CFNetwork API进行了封装,并且使用起来非常简单的一套API,用Obje ...

  9. adblockplus简单介绍

    adblockplus简单介绍 官方源码:https://github.com/adblockplus/adblockpluscore 官网:https://adblockplus.org/ adbl ...

最新文章

  1. linux nat 日志,IPtables日志管理  (记录NAT信息)
  2. EFCore+Mysql仓储层建设(分页、多字段排序、部分字段更新)
  3. java将图片铺满panel_如何让添加的背景图片铺满整个JFrame?
  4. 程序员如何帮助公司快速上市、获得分红?
  5. 128.3. Example 配置实例
  6. 广义表取表头表尾_数据结构广义表的递归算法
  7. 使用Sqlite数据库存储数据
  8. CF1039E Summer Oenothera Exhibition
  9. java微信聊天机器人源码_三步轻松打造微信聊天机器人(附源码)
  10. CODESYS Softmotion(一)功能介绍
  11. linux的帮助,帮助信息_Linux公社 - Linux系统门户网站
  12. 北京科技计算机类好不好,北京信息科技大学怎么样 在全国排名多少好不好
  13. 俄语计算机考研,研友分享:俄语考研91分的经验体会
  14. 个人学习之C++ 头文件.h与.cpp
  15. C#批量剪切视频文件
  16. 抖音直播各类话术?开场、留人、促单互动话术合集
  17. SAF(Storage Access Framework)使用攻略
  18. 根据身份证号码来提取人员的信息【身份证号码的前六位所代表的省,市,区, 以及地区编码】的网上地址
  19. 【源码】基于传热实验的管壳式、双管式、三叉流式换热器
  20. matlab:神经网络分类预测鸢尾花(iris)

热门文章

  1. 超分辨率重建经典方法——Super-Resolution Through Neighbor Embedding
  2. Vue3 企业级项目实战
  3. 夹缝时代,书的阅读与未来
  4. Word控件Spire.Doc 【页面设置】教程(5) 如何在 C# 中删除分页符
  5. 跟踪报道:中国国际数字城市建设技术与设备博览会(简报)
  6. PPT基础(二十九)添加备注和批注
  7. ht城市介绍人口数量Html,城市人口比例-雅思写作柱状图bar chart-雅思小作文范文 population living in urban areas...
  8. 原语科技正式推出隐私计算开源平台Primihub!
  9. 惠普暗影精灵 8 台式机 评测
  10. 计算机检索逻辑关系,计算机检索技术 ppt课件.ppt