
目录
1.概述
1.1对servlet的理解
1.2区别普通类和Servlet类
2.Servlet入门小案例
2.1实现步骤:
2.2浏览器访问Servlet类的执行流程
3.servlet的生命周期
3.1三个生命周期方法
3.2具体过程
3.3将Servlet对象的创建提前
4.servlet的参数配置
4.1在web.xml中配置
4.2servlet的注解配置
5.servlet的体系结构
6.servlet的实现方式
方式一:实现Servlet接口
方式二:继承GenericServlet
*方式三:继承HttpServlet
7. servlet的url-pattern的配置
7.1 路径的写法
Servlet是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成 动态Web内容。这个过程为:
1,客户端发送请求至服务器端
2,服务器将请求信息发送至 Servlet
3,Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求
4,服务器将响应返回给客户端
Servlet 看起来像是通常的 Java 程序。Servlet 需要导入特定的属于 Java Servlet API 的包。Servlet有三种实现方式:实现Servlet接口, 继承抽象类GenericServlet, 继承HttpServlet
servlet是运行在服务器端的小程序能够通过浏览器访问到的类就是servlet
tomcat服务器给我们提供了一个接口,该接口的名字就叫做Servlet,但是我们所学习的Servlet是一个泛指,并不是这个接口,而是泛指的所有的servlet类。也就是Servlet是一个大家族的。Servlet接口下面也会有一些实现类。
如果我们自己创建一个类的话,该类是一个普通类。
如果该类加入了Servlet大家族之后,就成了Servlet类,只需要实现Servlet接口即可。
1.创建一个普通类
2.实现Servlet接口
3.重写接口中的所有的抽象方法
4.在抽象方法中写点内容
5.配置web.xml配置文件(或用注解的方式)
6.开启服务器
7.打开浏览器,访问servlet类即可
1.通过地址栏输入:localhost:8080/项目的虚拟路径/servlet的虚拟目录向服务器发送请求
如:localhost:8080/day52/servletDemo01
2.服务器接收到了浏览器发过来的请求,会对URL地址进行解析,得到项目的虚拟路径和 servlet的虚拟目录
3.拿servlet的虚拟目录去web.xml中进行查找,看一看和哪个url-pattern匹配
4.如果找到了匹配的url-pattern,就会通过映射关系,最终找到了servlet-class中的数据,获 取 出来
5.通过反射技术,创建servlet类的对象,然后调用service()方法
init():初始化方法
service():执行方法
destroy():销毁方法
1.当我们通过浏览器第一次访问一个servlet的时候,servlet对象会被创建,随后会执行init方法 , 随 后会执行service方法
2.当我们通过浏览器重复的访问同一个servlet的时候,servlet对象不会再创建,也不会再执行init 方法, 但是会执行service方法
3.当我们正常的关闭服务器,就会执行destroy方法
需要在web.xml配置:
servletDemo01 com.servlet.ServletDemo01 1
注意:load-on-startup的默认值为-1,也就说当我们第一次访问servlet的时候才会创建对象,调用init方法,数字用来给多个servlet的创建时机排序的
servletDemo04 com.servlet.ServletDemo04 name tom 1
四种方式
@WebServlet(urlPatterns= {"/servletDemo05"})
@WebServlet(urlPatterns = "/servletDemo05")
@WebServlet(value = "/servletDemo05")
@WebServlet("/servletDemo05")
javax.servlet.Servlet 接口 通用的servlet接口
-- javax.servlet.GenericServlet 抽象类 通用的servlet实现类
-- javax.servlet.http.HttpServlet 抽象类 具体的实现类(针对http协议的servlet实现类)
-- javax.servlet.ftp.FtpServlet
-- javax.servlet.ppp.PPPServlet
class ServletDemo1 implements Servlet {
}
class ServletDemo02 extends GenericServlet {
}
class ServletDemo03 extends HttpServlet {
}
注意:重写doGet()和doPost()
@WebServlet("路径")
1. /XXX
@WebServlet("/servletDemo1")
@WebServlet("/aaa")
2. /XXX/OOO
@WebServlet("/aaa/servletDemo08")
@WebServlet("/aaa/bbb")
@WebServlet("/aaa/bbbservletDemo08
此时的*不是通配符