## 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. Nginx部署前后端分离服务

    飘过... 一,安装Nginx 二,配置nginx 一般nginx配置文件在etc目录下 另,如何找nginx.conf配置文件: 在前后端分离端项目里,前端的代码会被打包成为纯静态文件.使用 Ngi ...

  2. AAAI 2020论文分享:通过识别和翻译交互打造更优的语音翻译模型

    2月初,AAAI 2020在美国纽约拉开了帷幕.本届大会百度共有28篇论文被收录.本文将对其中的机器翻译领域入选论文<Synchronous Speech Recognition and Spe ...

  3. Python几个简单实用的模块

    今天整理了下,工作中常用的一些高阶函数,后面持续更新...... 一.collections 二.itertools 三.functools

  4. 利用机器学习检测HTTP恶意外连流量

    本文通过使用机器学习算法来检测HTTP的恶意外连流量,算法通过学习恶意样本间的相似性将各个恶意家族的恶意流量聚类为不同的模板.并可以通过模板发现未知的恶意流量.实验显示算法有较好的检测率和泛化能力. ...

  5. 从头认识js-js中的继承

    要彻底弄明白js中的继承,我们首先要弄清楚js中的一个很重要的概念那就是原型链. 1.什么是原型链? 我们知道每个构造函数都有一个原型对象,原型对象包含一个指向构造函数的指针,而实例都包含一个指向原型 ...

  6. psql的jsonb操作--存储对象/对象数组

    1. 建表 create table demo( id serial NOT NULL PRIMARY KEY, name ), info JSONB ); 2.存储对象操作 2.1添加 insert ...

  7. python+opencv->边缘提取与各函数参数解析

    前情提要:作为刚入门机器视觉的小伙伴,第一节课学到机器视觉语法时觉得很难理解, 很多人家的经验,我发现都千篇一律,功能函数没解析,参数不讲解,就一个代码,所以在此将搜集的解析和案例拿出来汇总!!! 一 ...

  8. Linux 常见目录

    /bin 二进制目录,存放许多用户级的GNU工具 /boot 启动目录,存放启动文件 /dev 设备目录,Linux在这里创建设备节点 /etc 系统配置文件目录 /home 用户目录 /lib 库目 ...

  9. css 一行自适应等比例布局

    一.浮动布局+百分比 .row { width:100%; overflow:hidden; zoom:1; } .item { float: left; width: 20%; } 该样式兼容性较好 ...

  10. 04-influxdb基本操作

    influxdb基本操作 1. 数据库基本操作 # 创建数据库 > create database db01; # 查看数据库 > show databases; name: databa ...