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
在GitHub上编辑此页 (opens new window)
上次更新: 2023/4/21 16:56:30