8. Servlet入门 - 使用Maven创建javaweb工程、使用web.xml配置路径、使用注解方式配置路径
Servlet入门需求说明
上一章节,我们讲解了一下基础的 Idea 集成 Tomcat,并且也说明了一下如何添加 jar 包,创建 web 项目工程。
但是更好的方式是采用 Maven 来管理 jar 包依赖,所以下面我们来使用 Maven 创建 javaweb 工程的方式,来演示Servlet入门。
1. 不使用骨架 - 创建javaweb工程
1.1 选择Maven创建项目
image-20201213152328517
1.2 设置项目信息
image-20201222234824814
image-20201222234848949
1.3 创建好的工程目录结构。缺少 webapp
image-20201222235119248
1.4 使用JBLJavaToWeb插件
image-20201222235414029
image-20201222235516669
image-20201222235552101
image-20201222235649957
1.5 引入 junit 以及 servlet 依赖
image-20201223000127882
代码语言:javascript复制<!-- 设置依赖 -->
<dependencies>
<!--引入junit的依赖 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!--引入servlet的依赖-->
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
2. web.xml 配置文件方式实现 Servlet
2.1 创建com.web包,并创建一个类实现Servlet接口
image-20201223000557418
2.2 实现 service 方法,专门用来处理请求和响应
image-20201223085358414
2.3 到 web.xml 中去配置 servlet 程序的访问地址
image-20201223085548028
代码语言:javascript复制 <!-- servlet标签给Tomcat配置Servlet程序 -->
<servlet>
<!--servlet-name标签 Servlet程序起一个别名(一般是类名) -->
<servlet-name>HelloServlet</servlet-name>
<!--servlet-class是Servlet程序的全类名-->
<servlet-class>com.web.ServletDemo1</servlet-class>
</servlet>
<!--servlet-mapping标签给servlet程序配置访问地址-->
<servlet-mapping>
<!--servlet-name标签的作用是告诉服务器,我当前配置的地址给哪个Servlet程序使用-->
<servlet-name>HelloServlet</servlet-name>
<!--
url-pattern标签配置访问地址
/ 斜杠在服务器解析的时候,表示地址为:http://ip:port/工程路径
/hello 表示地址为:http://ip:port/工程路径/hello
-->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
2.4. 配置tomcat 以及设置工程路径
image-20201223085652810
image-20201223085741572
image-20201223085719895
image-20201223085907543
2.5 启动 tomcat ,访问 servlet
访问 http://localhost:8080/demo01/hello
image-20201223090145672
3.使用 注解配置路径 的方式 实现 Servlet
在上面我们已经使用 web.xml 配置 Servlet 的访问路径,那么下面我们再换一种方式,使用 注解的方式来配置路径。
3.1 创建 ServletDemo2 类,实现Servlet 接口
image-20201223214311450
3.2 实现 service 方法,处理请求和响应
image-20201223214359291
3.3 使用 WebServlet 注解的方式 配置 Servlet 的访问路径
image-20201223214502322
3.3.1 查看 WebServlet 源码,看看注解要填什么值
image-20201223214659497
3.3.2 使用 urlPatterns 可以设置多个访问路径
image-20201223215042276
代码语言:javascript复制@WebServlet(urlPatterns = {"/demo2", "/demo2_test"})
public class ServletDemo2 implements Servlet {
开启 tomcat 服务测试如下:
- 首先访问第一个路径
/demo2
, 访问:http://localhost:8080/demo01/demo2
image-20201223215213008
- 再访问第二个路径
/demo2_test
,访问:http://localhost:8080/demo01/demo2_test
image-20201223215302080
3.3.3 使用 value 设置多个访问路径
image-20201223215435439
在 Servlet 设置如下:
image-20201223215525431
代码语言:javascript复制@WebServlet(value = {"/demo2", "/demo2_test"})
public class ServletDemo2 implements Servlet {
3.3.4 使用 value 来设置路径的话,可以省略不写
image-20201223215702682
3.3.5 使用 value 只设置单个路径的话,可以省略花括号 {}
image-20201223215830108
可以从运行来看,我们一般给路径只设置一个,而此时则可以简写如下:
代码语言:javascript复制@WebServlet("/demo2")
public class ServletDemo2 implements Servlet {
4.总结
4.1 疑问:既然已经有了 注解配置 路径的方式,那么是不是就不需要使用 xml 的配置方式了呢?
注解配置路径 的方式的确方便,但是只能配置我们自己写的代码。如果我们需要使用一些框架的 Servlet,就无法去写注解了。
这个时候就要使用 web.xml 的方式去配置。
4.2 创建Servlet配置路径的方式
- xml方式
- 创建一个类实现Servlet接口
- 在web.xml配置servlet
- 注解方式
- 创建一个类实现Servlet接口
- 在类上面添加@WebServlet("访问的路径")