Servlet 入门案例
# 1.Servlet 入门案例
我们来动手实现一个 Servlet 并处理请求
# 创建 JavaWeb 项目
我们创建一个 JavaWeb 项目(在 Tomcat 中已经讲过如何创建了)
# 新建 Servlet 实现类
在 src 里写一个包 com.peterjxl
,定义一个类 ServletDemo1Hello
,实现 Servlet 接口
public class ServletDemo1Hello implements Servlet
1
我们导入 Tomcat 目录下的 servlet-api.jar,这样我们才能正常编写 Servlet 代码:
- 复制 apache-tomcat-9.0.73/lib/servlet-api.jar 到 WEB-INF/lib 目录下
- 将 lib 目录添加为依赖库
然后实现接口中的抽象方法,此时代码如下:
package com.peterjxl;
import javax.servlet.*;
import java.io.IOException;
public class ServletDemo1Hello implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
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
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
# 配置 web.xml
接下来我们需要配置 web.xml,例如通过什么路径访问到这个 Servlet:
<?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-name>demo1</servlet-name>
<servlet-class>com.peterjxl.ServletDemo1Hello</servlet-class>
</servlet>
<!--配置Servlet -->
<servlet-mapping>
<servlet-name>demo1</servlet-name> <!-- 访问路径时,使用哪个Servlet-->
<url-pattern>/demo1</url-pattern> <!-- 访问哪个路径-->
</servlet-mapping>
</web-app>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
这里的配置应该很好理解,首先定义了一个 Servlet,包括 Servlet 的名字(方便后面引用),Servlet 的全类名;
然后定义了路径映射关系,当访问 /demo1 的时候,由哪个 Servlet 处理
# 编写业务代码
在 service 方法里编写业务逻辑代码,每次访问的时候,service 方法都会被执行:
//提供服务的方法
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("Hello Servlet");
}
1
2
3
4
5
2
3
4
5
启动 JavaWeb 项目,当访问 http://localhost: 8080/hello/demo1 时,可以看到 service 方法自动被调用了,每次访问都会调用一次
Hello Servlet!
Hello Servlet!
1
2
2
# Servlet 执行过程
现在我们来梳理下 Servlet 的执行过程:
- 当服务器接受到客户端浏览器的请求后,会解析请求 URL 路径,获取访问的 Servlet 的资源路径
- 查找 web.xml 文件,是否有对应的
<url-pattern>
标签体内容。 - 如果有,则在找到对应的
<servlet-class>
全类名 - Tomcat 会将字节码文件加载进内存,并且创建其对象
- 调用其
service
方法 - 以上方法就是 Web 容器(例如 Tomcat)的作用,自动创建对象并调用方法。
# 总结
实现一个 Servlet 的步骤如下:
- 创建一个 JavaWeb 项目
- 定义一个类,实现 Servlet 接口
- 实现接口中的抽象方法
- 在 web.xml 里配置 Servlet
- 实现接口中的 service 方法,用来处理请求
- 测试 Servlet
上次更新: 2024/10/1 21:14:36