## Servlet的体系结构

  Servlet  ---  接口

    |

    |

  GenericServlet  ---  抽象类

    |

    |

  HttpServlet  --  抽象类

  GenericServlet:将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象

    *  将来定义Servlet类时,可以继承GenericServlet,实现Service()方法即可。

  HttpServlet:对HTTP协议的一种封装,简化操作

    1、定义类继承HttpServlet

    2、复写doGet/doPost方法

##  Servlet相关配置

  1、urlpartten:Servlet的访问路径

    *  一个Servlet可以定义多个访问路径:  @WebServlet({"/d1","/d2"})

    *  路径定义规则:

      1、/xxx

      2、/xxx/xxx:多层路径,目录结构

      3、*.do

package com.ftj.servlet.demo02;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException; /**
* Servlet路径配置
*/
//@WebServlet({"/d1","/d2"})
//@WebServlet("/user/*")
@WebServlet("*.do")
public class HttpServletDemo02 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doGet(req, resp);
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}

##  HTTP:Hyper Text Transfer Protocol  超文本传输协议

 *概念:

  *  传输协议:定义了客户端和服务器端通信时,发送数据的格式。

  *  特点

    1、基于TCP/IP的高级协议

    2、默认端口号:80

      http://www.baidu.com:80

    3、基于请求/响应模型:一次请求对应一次响应

    4、无状态的:每次请求之间相互独立,不能交互数据

  *  历史版本:

    1、1.0:每次响应都会建立新的连接

    2、1.1:复用连接

 *  请求消息数据格式

  1、请求行

    请求方式  请求URL  请求协议/版本

    GET  /login.html  HTTP/1.1

    *  请求方式:

      *  HPPT协议有7种请求方式,常用的有2种

        *  GET:

        1、请求参数在请求行中,在URL后。

        2、请求的url长度有限制

        3、不太安全

        *  POST:

        1、请求参数在请求体中

        2、请求的url长度没有限制

        3、相对安全

  2、请求头:客户端浏览器告诉服务器一些信息

    请求头名称:请求头值

    *  常见的请求头:

      1、User-Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息

        *  可以在服务器端获取该头的信息,解决浏览器兼容问题

      2、Referer:http://localhost/login.html

        *  告诉服务器,我(当前请求)从哪里来?

          *  作用:  

          1、防盗链

          2、统计工作

  3、请求空行

    空行:用户分割POST请求的请求头和请求体的

  4、请求体(正文):封装POST请求消息的请求参数的

  *  字符串格式:

  1 GET/sample.jspHTTP/1.1
  2 Accept:image/gif.image/jpeg,*/*
  3 Accept-Language:zh-cn
  4 Connection:Keep-Alive
  5 Host:localhost
  6 User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
  7 Accept-Encoding:gzip,deflate
  8
  9 username=jinqiao&password=1234

 *  响应消息数据格式

Servlet(三)----Servlet体系与HTTP的更多相关文章

  1. 开发servlet三种方式

    第一种:实现Servlet接口 ServletDemo类 实现Servlet接口 public class ServletDemo implements Servlet { //初始化该servlet ...

  2. JavaWeb学习笔记三 Servlet

    Servlet 是运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求.响应给浏览器的动态资源.但servlet的实质就是java代码,通过java的API,动态的向客户 ...

  3. Cookie&Seesion会话 共享数据 工作流程 持久化 Servlet三个作用域 会话机制

    Day37 Cookie&Seesion会话 1.1.1 什么是cookie 当用户通过浏览器访问Web服务器时,服务器会给客户端发送一些信息,这些信息都保存在Cookie中.这样,当该浏览器 ...

  4. web开发之Servlet 三

    昨天我们学习了Servlet的运行过程和生命周期,那么今天我们学习下Servlet中非常重要的两个类:ServletConfig  ServletContext 我们可以看到,与顶层Servlet主动 ...

  5. Servlet三种创建方式

    直接实现 Servlet 接口不太方便,所以 Servlet 又内置了两个 Servlet 接口的实现类(抽象类),分别为 GenericServlet 和 HttpServlet,因此,创建 Ser ...

  6. Servlet/JSP-01 Servlet及其生命周期

    一.起步 1.新建一个类继承Servlet接口 public class HelloServlet implements Servlet { @Override public void destroy ...

  7. HTTP协议 Servlet入门 Servlet工作原理和生命周期 Servlet细节 ServletConfig对象

    1 HTTP协议特点   1)客户端->服务端(请求request)有三部份     a)请求行--请求行用于描述客户端的请求方式.请求的资源名称,以及使用的HTTP协议版本号 请求行中的GET ...

  8. javaWeb学习总结(3)- Servlet总结(servlet的主要接口、类)

    Servlet总结01——servlet的主要接口.类 (一)servlet类 Servlet主要类.接口的结构如下图所示: 要编写一个Servlet需要实现javax.servlet.Servlet ...

  9. 【Servlet】Servlet的配置

    创建时间:6.15 Servlet的配置 1. 基本配置 其中url-pattern的配置方式: 1)完全匹配 访问的资源与配置的资源完全相同才能访问到 2)目录匹配 格式:/虚拟的目录../*   ...

随机推荐

  1. 斑马难题Step by Step

    问题描述 分析 代码 在exercism.io被这个 Zebra Puzzle 难住了.这里一步一步的解决... 1.There are five houses. 2.The Englishman l ...

  2. springmvc两种配置方法

    基于配置文件xml方式, 配置springmvc步骤: 1.在pom文件中引入jar包: <!--导入springmvc的jar包--> <dependency> <gr ...

  3. 不要忽视Managed code stripping的副作用

    0x00 前言 Unity 2018.3之后,新的“Managed Stripping Level”选项将替换 player settings 中原有的“Stripping Level”选项. 这个新 ...

  4. vue之initComputed模块源码说明

    要想理解原理就得看源码,最近网上也找了好多vue初始化方法(8个init恶魔...) 因为也是循序渐进的理解,对initComputed计算属性的初始化有几处看得不是很明白,网上也都是含糊其辞的(要想 ...

  5. checkbox,radio自定义美化表单

    原理 利用label标签,包裹input的时候,点击label等同于点击input,再用背景图片显示选中和取消选中状态 效果 图片 复选 <!DOCTYPE html> <html& ...

  6. JAVA有关位运算的全套梳理

    一.在计算机中数据是如何进行计算的? 1.1:java中的byte型数据取值范围 我们最开始学习java的时候知道,byte类型的数据占了8个bit位,每个位上或0或1,左边第一位表示符号位,符号位如 ...

  7. ELK springboot日志收集

    一.安装elasticsearch 可以查看前篇博客 elasticsearch安装.elasticsearch-head 安装 二.安装 配置 logstash 1.安装logstash 下载地址: ...

  8. Element-UI饿了么时间组件控件按月份周日期,开始时间结束时间范围限制参数

    在日常开发中,我们会遇到一些情况,在使用Element-UI 限制用户的日期时间范围的选择控制(例如:查询消息开始和结束时间,需要限制不能选择今天之后的时间). 看了网上的一些文档,零零散散.各式各样 ...

  9. 无损卡尔曼滤波UKF(3)-预测-生成Sigma点

    无损卡尔曼滤波UKF(3)-预测-生成Sigma点 1 选择创建Sigma点 A 根据 已知上一个时间戳迭代出来的 后验状态 x_{k|k} 和后验协方差矩阵 P_{k|k} 他们代表当前状态的分布. ...

  10. js之重写原型对象

    “实例中的指针仅指向原型,而不是指向构造函数”. “重写原型对象切断了现有原型与任何之前已经存在的对象实例之间的关系:它们引用的仍然是最初的原型”.——前记 var fun = function(){ ...