## 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. BeWhatever

    Hadoop Distributed File System:分布式文件系统. HDFS基于流数据模式访问和处理超大文件需求开发,具有高容错性,高可靠性,高可扩展性,多部署在低成本的硬件上.HDFS提 ...

  2. 从摔得稀碎、蓝屏再到黄牛拒绝加价:iPhone X究竟是怎么了

    X究竟是怎么了" title="从摔得稀碎.蓝屏再到黄牛拒绝加价:iPhone X究竟是怎么了"> ​近日,iPhone X终于迎来了正式出货的时间.作为十周年的创 ...

  3. 状态模式(State)-设计模式

    软件模式是将模式的一般概念应用于软件开发领域,即软件开发的 总体指导思路或参照样板.软件模式并非仅限于设计模式,还包括 架构模式.分析模式和过程模式等,实际上,在软件生存期的每一个阶段都存在着一些被认 ...

  4. Scheme实现数字电路仿真(3)——模块

    版权申明:本文为博主窗户(Colin Cai)原创,欢迎转帖.如要转贴,必须注明原文网址 http://www.cnblogs.com/Colin-Cai/p/12242650.html 作者:窗户 ...

  5. 7-35 jmu-python-求三角形面积及周长 (10 分)

    输入的三角形的三条边a.b.c,计算并输出面积和周长.假设输入三角形三边是合法整形数据. 三角形面积计算公式:  ,其中s=(a+b+c)/2. import math #导入math库 math.s ...

  6. 【Django】接收照片,储存文件 前端代码

    后端: from rest_framework.views import APIView from car import settings from django.shortcuts import r ...

  7. ES6 常用知识点总结

    ES6常用知识总结 之前总结了es5中js的一些知识点.这段时间看了石川blue老师讲解的es6课程,结合阮一峰老师的es6教程,随手做了一些笔记和总结分享给大家.内容还是es6主要的知识点,基本没有 ...

  8. bp(net core)+easyui+efcore实现仓储管理系统——入库管理之三存储过程(三十九)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  9. 峰哥说技术:08-Spring Boot整合FreeMarker视图

    Spring Boot深度课程系列 峰哥说技术—2020庚子年重磅推出.战胜病毒.我们在行动 08  峰哥说技术:Spring Boot整合FreeMarker视图 前面带着大家整合了Thymelea ...

  10. 2019年高校微信小程序开发大赛学习笔记

    学做小程序(学堂在线笔记)一.传统布局 text-align:center //水平居中 margin-bottom: 60px //设置间距 二.弹性盒子布局 display:flex; flex- ...