Servlet:

1、概念:Servlet:server applet  ,运行在服务器端的小程序。

       浏览器在访问服务器的动态资源时,访问的是具有逻辑性的Java代码(Java类),而这里的Java类依 赖于服务器才能运行(tomcat执行它),而这些Java类需要遵循一些规则,tomcat才能识别它并执行它,而这些规则就是Servlet。

        * Servlet就是一个接口,定义了Java类能被浏览器访问到(tomcat识别)的规则。

2、快速入门:

  1、创建JavaEE项目。

  2、定义一个类,实现Servlet接口。

  3、实现接口中的抽象方法。

  4、配置Servlet:

<servlet>
<servlet-name>demo1</servlet-name>
<servlet-class>servlet.ServletDemo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>demo1</servlet-name>
<url-pattern>/demo1</url-pattern>
</servlet-mapping>

3、Servlet执行原理。

  1、http://localhost:8080/Tomcat/demo1    浏览器访问服务器,并试图获取资源。

  2、查找web.xml,看<url-pattern>里有没有demo1

  3、如果有,找到对应<servlet-class>全类名。

  4、tomcat将该类的字节码文件加载进内存,并创建其对象。

  5、调用该对象的方法。

4、Servlet中的生命周期。

  1、被创建:执行 init 方法,只执行一次。

    * Servlet什么时候被创建?

      * 默认,第一次访问时,Servlet被创建。

      * 可以配置Servlet的创建时机。

         1、第一次被访问时创建:<load-on-startup>的值为负数。

          2、服务器启动时创建:值为0或正数。

    * Servlet的 init 方法,只执行一次,说明一个Servlet在内存中只存在一个对象,Servlet是单例的。所以在多个用户访问时,可能存在线程安全问题。

      * 解决:尽量不要在Servlet中定义成员变量。即使定义了,不要对其修改值。

  2、提供服务:执行service 方法,执行多次。

    * 每次访问Servlet时,service方法被调用一次

  3、被销毁:执行 destroy 方法,只执行一次。

    * 服务器关闭时(正常关闭),在Servlet销毁之前被执行,一般用于释放资源。

4、Servlet3.0.

  好处:支持注解配置。可以不用web.xml。

  步骤:1、创建JavaEE项目,选Servlet3.0及以上版本,可不创建web.xml

     2、定义类实现接口,重写方法。

     3、类上使用@WebServlet 注解来配置:@WebServlet("资源路径")。

5、IDEA和tomcat的相关配置。

  1、IDEA会为每个tomcat部署的项目单独建立一份配置文件。

    * 查看控制台的 Using CATALINA_BASE:

  2、项目有两个地方存储:工作空间项目  和  tomcat部署的web项目。

    * tomcat真正访问的是 “tomcat部署的web项目“ ,该项目对应着工作空间项目的web目录下的所有资源。

  3、tomcat断点调试:点小虫子来启动debug。

6、Servlet体系结构。

  Servlet接口 <---GenericServlet 抽象类 <-- HttpServlet 抽象类。

  *GenericServlet:将Servlet接口的其他方法作了默认实现,只将service()方法作为抽象方法,所以以后定义Servlet类时,可以继承该抽象类,实现service()方法即可。

  *HttpServlet :对http协议的一种封装,简化操作(判断请求类型)   常用

    实现:1、定义类继承HttpServlet  2、复写doGet/doPost 方法。

7、Servlet相关配置。

  1、urlPartten:Servlet访问路径。

    * 一个Servlet可以定义多个访问路径。

    * 路径定义规则:1、/XXX  2、/xxx/xxx 3、*.do

8、HTTP。

  1、概念:Hyper Text Transfer Protocol  超文本传输协议。

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

    * 特点:1、基于TCP/IP的高级协议。

        2、默认端口号:80

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

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

  2、请求消息数据格式。

    1、请求行:请求方式  请求url  请求协议/版本 : GET /login.html HTTP/1.1

    2、请求头:浏览器告诉服务器一些信息。 请求名称:请求值

      常见的请求头:1、User-Agent:告诉服务器浏览器的版本信息。

             2、Referer:告诉服务器,当前请求从哪里来。作用:防盗链、统计。

    3、请求空行:空行,用来分隔。

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

Servlet入门和HTTP。的更多相关文章

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

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

  2. 浅谈JavaWEB入门必备知识之Servlet入门案例详解

    工欲善其事.必先利其器,想要成为JavaWEB高手那么你不知道servlet是一个什么玩意的话,那就肯定没法玩下去,那么servlet究竟是个什么玩意?下面,仅此个人观点并通过一个小小的案例来为大家详 ...

  3. java之servlet入门操作教程一续

    本节主要是在java之servlet入门操作教程一  的基础上使用myeclipse实现自动部署的功能 准备: java之servlet入门操作教程一 中完成myFirstServlet项目的创建: ...

  4. servlet入门与进阶

    servlet入门与进阶 1.servlet基础认知 Servlet(Server Applet):全称Java Servlet,是用Java编写的服务器端程序,其主要功能在于交互式地浏览和修改数据, ...

  5. JavaWeb之Servlet入门(二)

    1. 准备 在JavaWeb之Servlet入门(一)中,我们完成了第一个Servlet程序,完成了从URL到后台控制器的中转过程,接下来我们延续JavaWeb之Servlet入门(一)学习下如何传参 ...

  6. Servlet视频学习笔记 57-58 (servlet入门和调用过程)

    网易云课堂<30天轻松掌握JavaWeb视频>servlet部分 课时57 servlet开发入门 servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术.S ...

  7. Servlet入门和ServletConfig、ServletContext

    Servlet是一门用于开发动态web资源的技术. 若想开发一个动态web资源,需要完成以下2个步骤: 1)编写一个Java类,实现servlet接口: 2)把开发好的Java类部署到web服务器中. ...

  8. servlet入门学习之工作原理解析

    从 Servlet 容器说起 要介绍 Servlet 必须要先把 Servlet 容器说清楚,Servlet 与 Servlet 容器的关系有点像枪和子弹的关系,枪是为子弹而生,而子弹又让枪有了杀伤力 ...

  9. Servlet入门实践

    本文主要介绍servlet,包括入门到升入,基本上可以对servlet有一个很好的认识: 1servlet介绍:   Servlet(Server Applet),全称Java Servlet,未有中 ...

随机推荐

  1. 模拟赛 T1 费马小定理+质因数分解+exgcd

    求:$a^{bx \%p}\equiv 1(\mod p)$ 的一个可行的 $x$. 根据欧拉定理,我们知道 $a^{\phi(p)}\equiv 1(\mod p)$ 而在 $a^x\equiv 1 ...

  2. PATA1025PAT Ranking

    需要注意的就是sort函数的应用,还有自己比较函数cmp的编写 在一个就是结构体的设计,排序时的考室内的排序,数组下标的处理 参考代码: #define _CRT_SECURE_NO_WARNINGS ...

  3. 深入js系列-类型(对象)

    开篇 值的传递方式 1.值传递 表示传递过程中复制了值 2.引用传递 表示传递过程中传递的是值的引用 js的传递方式 值传递 看下面的例子 // 这里值传递很容易理解 var a = 1 var b ...

  4. first-child、last-child误解

    MDN解释兄弟元素中的第一个元素 然后今天写的时候这样想出现了问题 并没有加上边框 W3C解释 尝试去掉h3,发现span加上了边框 E:first-child含义 父元素中第一个元素且第一个元素是E ...

  5. 【CF10D】 LCIS

    题目链接 最长公共上升子序列 \(f[i][j]\)表示\(A\)的前\(i\)个数,匹配\(B\)的第\(j\)个数,且\(B[j]\)必选时的最长公共上升子序列长度 转移: if(A[i]==B[ ...

  6. react-native-cli运行项目及打包apk失败的解决过程

    刚开始学习react native,第一步自然是搭建好开发环境,node及jdk本身就有,Python2.Android studio以及Android sdk的安装倒是没什么大问题,按照官网的教程做 ...

  7. 【cf补题记录】Codeforces Round #608 (Div. 2)

    比赛传送门 再次改下写博客的格式,以锻炼自己码字能力 A. Suits 题意:有四种材料,第一套西装需要 \(a\).\(d\) 各一件,卖 \(e\) 块:第二套西装需要 \(b\).\(c\).\ ...

  8. 【操作系统之十二】分支预测、CPU亲和性(affinity)

    一.分支预测 当包含流水线技术的处理器处理分支指令时就会遇到一个问题,根据判定条件的真/假的不同,有可能会产生转跳,而这会打断流水线中指令的处理,因为处理器无法确定该指令的下一条指令,直到分支执行完毕 ...

  9. Laravel jwt 多表验证隔离

    为什么要做隔离 当同一个laravel项目有多端(移动端.管理端......)都需要使用jwt做用户验证时,如果用户表有多个(一般都会有),就需要做token隔离,不然会发生移动端的token也能请求 ...

  10. 【转帖】 PM RD QA OP

    From 百度知道 一.PM: Product Manager,产品经理,又称品牌经理(Brand Manager).举凡产品从创意到上市,所有相关的研发.调研.生产.编预算.广告.促销活动等等,都由 ...