0%

Servlet

Maven中Servlet的配置

1.创建web项目,导入Servlet依赖坐标

1
2
3
4
5
6
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>

2.创建:定义一个类,实现Servlet接口,并重写接口中的所有方法,并在service方法中输出一句话

3.再类上使用@WebServlet注解,配置该Servlet的访问路径

4.访问:启动Tomcat,浏览器输入URL访问该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
package com.sympa.web;

import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;

@WebServlet("/demo1")
//浏览器输入http://localhost:8080/demo1
public class ServletDemo1 implements Servlet {

public void init(ServletConfig servletConfig) throws ServletException {

}

public ServletConfig getServletConfig() {
return null;
}

public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("servlet hello world!!!");
}

public String getServletInfo() {
return null;
}

public void destroy() {

}
}

Servlet的生命周期

  1. 加载和实例化:默认情况下,当Servlet第一次被访问时,由容器创建Servlet对象
  2. 初始化:在Servlet实例化后,容器将调用Servlet的init()方法初始化这个对象,完成一些如加载配置文件、创建连接等初始化的工作。该方法只调用一次
  3. 请求处理:每次请求Servlet时,Servlet容器都会调用Servlet的service()方法对请求进行处理
  4. 服务终止:当需要释放内存或者容器关闭时,容器就会调用Servlet实例的destroy()方法完成资源的释放。在destroy()方法调用之后,容器就会释放Servlet实例,该实例随后会被Java的垃圾收集器回收

Servlet的体系结构

  • Servlet:Servlet体系根接口
  • GenericServlet:Servlet抽象实现类(实现了Servlet接口)
  • HttpServlet:对HTTP协议封装的Servlet实现类(继承于GenericServlet抽象类)
    • 重写doGet和doPost方法

Servlet urlPattern配置

  • Servlet想要被访问,必须配置其访问路径
  • 一个Servlet,可以配置多个访问路径
    • @WebServlet(urlPatterns = {“/demo1”, “/demo2”})
  • urlPattern四种配置规则(按优先级)
    • 精确匹配:/xxx/xxx
    • 目录匹配:/xxx/*
    • 扩展名匹配:*.xxx
    • 任意匹配: /
------ THEEND ------

欢迎关注我的其它发布渠道