Servlet的介绍
Servlet(servlet applet) 是运行在Web服务器中的小型Java程序。Servlet通常通过Http(超文本传输协议)接收和响应来自Web客户端的请求
创建Servlet
- 创建一个Web应用
- 创建一个类,实现Servlet接口即可
- 重写Servlet接口的方法
- 最后在Web.XML配置Servlet的访问路径(可以在类中最前边使用@WebServlet()注解)
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!--配置Servlet-->
<servlet>
<servlet-name>demo01</servlet-name>
<!--全类名:通过反射创建servlet实例-->
<servlet-class>com.neuedu.webdemo.web.ServletDemo01</servlet-class>
</servlet>
<!--配置servlet的访问路径-->
<servlet-mapping>
<servlet-name>demo01</servlet-name>
<url-pattern>/servletDemo01</url-pattern>//Servlet的访问路径
</servlet-mapping>
最后启动服务器访问Servlet
http://localhost:8080/Web应用虚拟路径/Servlet的访问路径
完整的访问路径就是 http://ip端口号:8080/Web应用虚拟路径/Servlet的访问路径
Servlet的执行原理
- 客户端发送请求,tomcat到请求的URL并且解析获取到访问的Servlet
- 获取到Servlet后在Web.XML中遍历查找是否有相对应的 url-pattern
- 通过url-pattern找到对应的Servlet的全限定类名,将其加载进内存并创建Servlet实例
Servlet的生命周期
-----初始化init() -> 业务逻辑service() -> 销毁destory()
init()方法
- 初始化方法,在servlet创建时执行,而且只执行一次
service()方法
- 编写业务逻辑的方法,每访问一次servlet就执行一次
destory()方法
- 销毁方法:在服务器正常关闭时执行,在服务器停止前执行完成
- 一般用于内存资源的释放
Servlet的体系结构
Servlet-接口 --> GenericServlet-抽象类 --> HttpServlet--抽象类
-
GenericServlet:实现了Servlet接口并将除了service方法之外的所有方法做了默认的实现,当一个类继承 GenericServlet时只需要重写service方法即可
-
HttpServlet封装了Http请求,简化了Http的相关操作,几乎没有理由重写
service
方法。service
通过将标准 HTTP 请求分发给每个 HTTP 请求类型的处理程序方法(doXXX())来处理它们-
doGet
,如果 servlet 支持 HTTP GET 请求 -
doPost
,用于 HTTP POST 请求 -
doPut
,用于 HTTP PUT 请求 -
doDelete
,用于 HTTP DELETE 请求 -
init
和destroy
,用于管理 servlet 的生命周期内保存的资源
-