## 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. 多方论战!市场到底看重VR哪些特质

    VR即Virtual Reality的缩写,中文译为"虚拟现实".近年来,VR的概念不断升温,三星.谷歌.微软.索尼.HTC等互联网巨头纷纷杀入VR市场,甚至催生出许多商业神话.  ...

  2. Gre 隧道与 Keepalived

    这一篇文章是做了不少功课的. 什么是 Gre 隧道 什么是 Vrrp KeepAlived 是什么 用Keepalived 怎么玩 附录 什么是 Gre 隧道 GRE 隧道是一种 IP-2-IP 的隧 ...

  3. Spark OFF_HEP变迁

    在文章的开头,安利一下我自己的github上的一个项目:AlluxioBlockManager,同时还有我的github上的博客:blog这个项目的作用是替代Spark2.0以前默认的TachyonB ...

  4. rpmbuild 实践

    安装 rpmbuild 1 # yum install -y rpm-build 查看 rpmbuild 相关的宏和参数 12345678 # rpmbuild --showrc | grep --c ...

  5. 斑马难题Step by Step

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

  6. Flash之后是不是该IE浏览器了

    Flash死亡,Adobe推荐大家拥抱HTML5. 其实Flash本身也是支持手机端的. 一.Flash宣告死亡 Adoebe官方网站发布了公告,2020年12月30日起终止支援Flash.目前Chr ...

  7. python爬虫所遇问题列举

    1.通过python socket库来构造请求报文,向服务器发送图片请求时 (1)图片在浏览器请求头中的remote address信息跟通过python socket输出远程连接地址和端口号不一致 ...

  8. eggjs+vue+nginx配置

    安装node https://github.com/nodesource/distributions#installation-instructions-1 注意使用No root privilege ...

  9. VUE深入浅出(学习过程)

    VUE 2020年02月26日06:27:10 复习过Java8新特性之后开始学习VUE. 了解node了之后,来了解一下VUE.针对于学习VUE用什么开发工具这个问题上,我这里有vsCode和web ...

  10. pika使用报错queue_declare() missing 1 required positional argument: 'queue'

    报错如下截图,使用pika的版本太高导致,重新安装pika==0.10.0解决.