Servlet-基础
<1> 简介
Servlet (Server Applet) 是Java Servlet 的简称, 称为小服务程序或服务连接器, 是一个接口, 定义 java 类被 Tomcat 服务器识别的方法.
<2> 基本操作
Intellij IDEA 2021.1 创建Java web项目详细步骤请参考:
https://blog.csdn.net/llplllll/article/details/116903198
- 创建 Java 项目
- 定义一个类,实现 Servlet 接口
public class Demo01 implements Servlet
注: 若无法识别 Servlet, 可手动导包
将 Tomcat 目录下 \ lib \ servlet-api.jar
手动导入, 并加载入库
3. 实现接口中的抽象方法 Alt+Insert
实现方法
4. 在 webapp / WEB-INF / web.xml
中配置 Servlet:
在 <web-app>
标签内添加以下内容:
<servlet>
<servlet-name>demo1</servlet-name>
<servlet-class>[全类名(目录+类名)]</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>demo1</servlet-name>
<url-pattern>/demo1</url-pattern>
</servlet-mapping>
<3> 注解配置
(1) 简介
注解配置: 为解决配置多个 servlet 需要多个 web.xml 的繁琐过程, 在 servlet 3.0 以上版本应用
(2) 步骤
- 创建项目
- 定义一个类, 实现 servlet 接口
- 复写方法
@override
- 在类上 (导包语句下面) 使用
@webServlet("资源路径")
导入虚拟目录
<4> 生命周期
(1) 生命周期方法
在创建 Servlet 时, 会产生 5 个重写方法, 其中与生命周期有关的:
- init
在运行过程只会产生一次, 启动服务器时执行
- service
每一次 Servlet 被访问时 (刷新) - destroy
正常关闭服务器的时候执行一次
(2) servlet 的创建时间
在 web.xml
中的 servlet
标签下创建 load-on-startup
标签:
值为负数时, 在第一次访问时创建 (默认)
值为正数时, 在服务器启动时创建
<5> servlet 体系结构
(1) GenericSevlet
可以省略除 service 之外其他无用方法的继承
(2) HttpServlet
补充知识: HTTP 中通过浏览器直接请是 Get 方式, 以 Post 方式提交表单时为 Post.
复写方法:
doGet:
Get 方式时执行
doPost:
Post 方式时执行
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doGet");
}
(3) WebServlet URL 配置
1. 配置多个 URL:
采用集合形式:
@WebServlet({"/a","/b","/c"})
2. 通配符:
@WebServlet("/user/*") user下任意目录
@WebServlet("/*") 任意目录
@WebServlet("*.do") 任意目录.do
注:
Tomcat 真正访问的是 Tomcat 部署的 web 项目, 在 web 文件夹中, 而 WEB-INF 下的资源不能被浏览器直接访问到.