​8. Servlet入门 - 使用Maven创建javaweb工程、使用web.xml配置路径、使用注解方式配置路径

2022-01-14 17:41:36 浏览数 (1)

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("访问的路径")

0 人点赞