servlet基础
# 导入Servlet依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.0</version>
<scope>provided</scope><!--必须,依赖范围-->
</dependency>
1
2
3
4
5
6
2
3
4
5
6
# 基本使用
// 2.使用@WebServlet注解配置该servlet的访问路径
@WebServlet("/demo")
// 1.创建一个类实现 Servlet 接口,并重写改接口所有方法,并在service中输入一句话
public class ServletDemo implements Servlet{
@Override
public void init(ServletConfig servletConfig) throws ServletException {
// 初始化方法,在Servlet被创建时执行,只执行一次
}
// 获取ServletConfig对象
@Override
public ServletConfig getServletConfig() {
return null;
}
// 提供服务方法,每次Servlet被访问,都会调用该方法
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
// 3.输出
System.out.println("servlet 访问了");
}
// 获取ServletConfig信息
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
// 销毁方法,当Servlet被销毁时,调用该方法,在内存释放或服务器关闭时销毁Servlet
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
访问:http://localhost:8080/demo
# Servlet生命周期
- 加载和实例化:默认情况下,当
Servlet
第一次被访问时,由容器创建Servlet
对象,或者在配置注解时设置@WebServlet("/demo", loadOnStartup=1)
,默认为负整数(第一次访问时创建),0或正整数(服务器启动时创建,数字越小优先级越高,用给哪些启动耗时的) - 初始化:在
Servlet
实例化后,将调用Servlet
的init()
方法初始化这个对象,完成一些加载配置文件、创建连接等初始化的工作,该方法只调用一次。 - 请求处理:每次请求
Serlevt
时都会调用Servlet
的service()
方法对请求进行处理。 - 服务中止:当需要释放内存或者容器关闭时,容器就会调用
Servlet
的destroy()
方法完成资源的释放。
# HttpServlet
正常使用的时候,继承HttpServlet
# Servlet urlPattern配置
Serlevt要想被访问,必须配置其访问路径urlPattern
- 一个Servlet可以配置多个
urlPattern
:@WebServlet(urlPattern={"/demo1", "/demo2"})
urlPattern
配置规则- 精确匹配
@WebServlet(urlPattern="/user/select")
: localhost/user/select
- 目录匹配
@WebServlet(urlPattern="/user/*")
: localhost/user/select,localhost/user/change
- 扩展名匹配
@WebServlet(urlPattern="*.do")
: localhost/select.do,localhost/change.do
- 任意匹配
@WebServlet(urlPattern="/")
: localhost/select,localhost/change/aa@WebServlet(urlPattern="/*")
: localhost/select,localhost/change/bb
- 精确匹配
上次更新: 2022/06/16, 11:06:00