IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> HttpServletrequest -> 正文阅读

[网络协议]HttpServletrequest

跟光磊学java -HttpServletrequest

Http(HyperText Transfer Protocol)表示超文本传输协议,传输HTML文件,是一种远程调用协议

Http的链接通常都是短链接的,协议的底层非常复杂,但是客户端(浏览器)和服务器(Tomcat)都封装了HTTP协议,因此我们Java程序员只需要对Http协议了解即可。

http协议是互联网上使用最多的协议,所有WWW开头的都要遵守HTTP协议或者是HTTPs协议

Http协议的作用就是用于定义web浏览器和web服务器之间交互数据的过程以及数据本身的内容

Http协议主要包含请求和响应两部分。

Http请求包含请求行,请求头,请求体(请求正文)三部分

Http响应包含响应行,响应头,响应体三部分

Http请求

http请求是客户端主动发给服务器,其目的是i想要传输数据给服务器(注册,登录)或者想要访问服务器提供的服务。

Http请求包含请求行,请求头,请求体(请求正文)三部分

请求行包含请求方式,请求行和协议版本三部分

  • 请求方式POST GET

    • ? Get请求 传输数据不安全,请求数据是跟在请求路径的后面,对请求数据的大小有限制

    • ? Post 请求传输数据安全 ,请求数据是放在请求体中,对请求数据的大小没有限制

  • 请求URL(统一资源标识符)即去掉了协议和IP地址的部分

  • 协议版本

请求头 由一系列的键值对组成

  • User-Agent 浏览器的信息
  • Content-Type 内容类型 客户端告诉服务器,客户端传输数据的MIME Type 类型
  • Cookie 这是请求头中最重要的信息之一,一种会话技术
  • Date请求发送到额日期和时间
  • Accept-Charset 浏览器可以接受的字符编码集
  • Accept 指定客户端能够接受的内容类型 Accept :text/plain,text/html
  • refer 从哪里来的(之前访问那个资源)防盗链

请求体

  • Get请求没有请求体,因为请求数据是跟在请求路径的后面
  • POST是有请求体,请求数据放在请求体中

HttpServletRequest的介绍

扩展servletRequest接口以提供Http Servlet的请求信息。

servlet容器创建一个HttpServletRequest对象并将其作为参数传递给servlet的服务方法(doGet,doPost等)。

在servlet ApI中定义了一个接口HttpServletRequest,它继承ServletRequest接口,专门用来封装HTTP请求消息,由于Http请求分为请求头,请求行,请求体三部分,因此在HttpServletRequest接口下可以通过对应的方法获取Http请求行,请求头,请求体的数据

image-20210926195930835

当客户端发送HTTp请求之后,Tomcat会接受客户端的请求,解析Http请求的数据,并且封装到HttpServletRequest对象中,然后再调用servlet对象的doGet()或者doPost()方法处理客户端请求时,将请求的数据传递给这两个方法的参数HttpServletRequest对象中,因此可以通过HtttpServletRequest的相关方法获取请求数据。

   @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     doGet(request, response);

    }


    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


    }

HttpServletRequest作用

  1. 存放请求数据,因此可以获取HTTP请求行,请求头,请求体的数据
  2. 实现请求转发
  3. 作为域对象共享数据

HttpServletRequest获取请求数据

  1. 请求行
System.out.println("HttpServletRequest获取请求行数据 --》   获取请求的方式"+request.getMethod());
//       请求的URI: /javaweb/request  由项目名(虚拟路径)+资源名组成
//        URI 表示统一资源标识符,表示在当前服务器可以使用这个地址来标识这个资源
//        URL 表示统一资源定位符
        System.out.println("HttpServletRequest获取请求行数据 --》   获取请求的URI"+request.getRequestURI());
        System.out.println("HttpServletRequest获取请求行数据 --》   获取请求的URL"+request.getRequestURL());
----------------------------------------终端显示-----
    HttpServletRequest获取请求行数据 --》   获取请求的方式GET
HttpServletRequest获取请求行数据 --》   获取请求的URI/javaweb/request
HttpServletRequest获取请求行数据 --》   获取请求的URIhttp://localhost:8080/javaweb/request

HttpServletRequest实现请求转发

服务器的一个资源路径跳到了另一个地址,例如添加数据之后要转到展示数据列表页面,删除数据以后也要转到数据列表页面。

请求转发跳转的一个特征是由服务器执行的,所以浏览器地址栏的地址是不会发改变的

 request.getRequestDispatcher(path).forward(request,response);
//绝对路径 是以/开头的路径对应请求转发而言在完整Url基础上省略项目路径,对于非请求转发而言在完整的URL基础上省略服务器路径
// 相对路径  不是以斜杠开头的 ,是以目标资源路径相对与当前资源路径
//浏览器请求资源的地址(当前资源路径) http://localhost:8080/javaweb/forward
//目标地址(目标资源路径) http://localhost:8080/javaweb/forward/forward.html

HttpServletRequest作为域对象共享数据

ServletContext和HttpServletRequest都是域对象那个,这种容器主要用于Servlet和servletJSP之间传输数据

ServletContext是整个应用的所有Servlet之间共享数据,无论多少次,只要在这个应用中的中的Servlet都可以共享

HttpServletRequest的作用范围是一次请求之内有效,可以在一个servlet 中通过请求转发跳转过去,这样浏览器的地址栏仍然是同一个地址,可以实现同一个请求下共享数据

HttpServletRequest必须依靠转发

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-30 12:17:32  更:2021-09-30 12:18:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年6日历 -2024/6/27 1:47:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码