Servlet部署教程(基于Tomcat)

本文详述了如何在Maven环境中创建并部署一个简单的Servlet应用到Tomcat服务器,包括项目创建、依赖引入、目录结构设置、代码编写和部署验证的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

⭐相关阅读推荐⭐

 Tomcat :Tomcat使用教程

                  Smart Tomcat插件使用教程(IDEA)

 Servlet : Servlet部署教程(基于Tomcat)

前端网络:Fiddler使用教程(HTTP抓包 前端debug)

                  HTTP、HTTPS协议详解

                  HTML常用语法总结【精华】

                  CSS常用语法总结【精华篇】

                  Java Script 语法总结

                  WebAPI—DOM (HTTL、CSS、Java Script应用及案例)

                  前端项目—待办事项(HTML+CSS+JavaScript实现)           

本章目录

👉 精华步骤 👈

1. 创建项目

2. 引入依赖

3. 创建目录结构

4. 编写代码

5. 打包程序

6. 部署程序到 Tomcat 上

7. 验证程序


精华步骤便于查阅,后文就是新手详细教程呦~

👉 精华步骤 👈

  1. 创建 Maven 项目
  2. pom.xml 中引入 servlet 依赖(<dependencies>
        <dependencies>
            <!-- 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>
  3. 创建固定目录结构(webapp -> WEB-INF -> web.xml,写入固定内容)
    <!DOCTYPE web-app PUBLIC
            "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
            "http://java.sun.com/dtd/web-app_2_3.dtd" >
    <web-app>
        <display-name>Archetype Created Web Application</display-name>
    </web-app>
  4. 创建Java类,继承 HttpServlet ,重写 doGet 方法(
    resp.getWriter().write("hello zxc"); 
  5. @WebServlet("/xxx")  指定Servlet Path 
    @WebServlet("/hello")
    public class HelloServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            resp.setContentType("text/html;charset=utf-8");    //更改编码方式为utf-8
            resp.getWriter().write("hello 你好");
        }
    }
  6. 在 pom.xml 设置打包属性,打包(Lifecycle -> package
        <packaging>war</packaging>
        <build>
            <finalName>warname_xxx</finalName>
        </build>

    warname_xxx为Context Path路径

1. 创建项目

创建 Maven 项目。 Maven 是 Java 世界中的一个非常知名的“构建工具”,负责编译打包代码。

点击“Next” -> “Next” -> “Finish” 完成创建。

项目创建好之后,IDEA自动为我们创建出一些目录结构。👇

maven 项目的典型结构

  • src 放源代码
  • main 正式代码
  • test 测试代码
  • java 放Java代码
  • resources 放依赖的资源文件
  • pom.xml 至关重要的文件,maven项目的核心配置文件,关于maven项目的相关属性,都是在这个 xml 中进行配置

2. 引入依赖

借助 maven 来管理依赖。直接把依赖的第三方库配置到 怕pom.xml 中即可。

找到 maven 的中央仓库:https://mvnrepository.com/,搜索 servlet 下载并进行引入。

 版本应该与 Tomcat 的版本是匹配的。Tomcat 是8系列对应 Servlet 就是3.1.0版本。

拷贝这个代码片段到 pom.xml 里创建的 <dependencies> 标签中:

    <dependencies>
        <!-- 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>

把这个代码粘贴进来之后, maven 就会自动的从中央仓库下载的 jar 包到本地并引用到项目中。

如果标签中关键字为红色,表明 IDEA 还未下载,可以使用maven选项卡(界面右侧)中的刷新按钮进行更新。

 完成后如下图所示:

3. 创建目录结构

Web需要的固定目录,必须按照如下命名👇:

 在 src/main 文件夹下创建名为 webapp 的文件夹,与 java文件夹同级。

webapp 里创建一个 WEB-INF 里面创建一个 web.xml 文件。

这个 web.xml 很关键,就是 Tomcat 能够识别这个动态页面的入口文件。

在 web.xml 中写入

<!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
    <display-name>Archetype Created Web Application</display-name>
</web-app>

如下图所示:

 IDEA 对 xml 的检查并不准确,标红未必有错,此处可以忽略第三行的标红,也可以在对应位置按 Alt+Enter 进行解决。

4. 编写代码

 ① 在 java 文件夹下创建一个新的 Java Class类,命名为 HelloServlet

 ② 创建 HelloServlet ,让这个类继承自 HttpServlet (此处的HttpServlet来源于前面 pom.xml 中引入的 jar 包(第三方库))

  ③ 重写父类的 doGet 方法

重写父类的 doGet 方法,为不管请求是啥内容,都返回一个字符串“hello world”,另外给 HelloServlet 加一个特定的注解。

@WebServlet("/hello")    // 告诉Tomcat:如果收到HTTP请求的URL路径是 /hello 这样的,就调用 HelloServlet这个类来处理该请求
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=utf-8");    //更改编码方式为utf-8
        // 此处就做一个简单的事情:
        // 不管请求是啥,响应都返回一个 hello world
        resp.getWriter().write("hello 你好");
    }
}

HttpServletRequest:请求. 也就是Tomcat 收到的HTTP请求,解析成了这个对象

HttpServletResponse:响应. 也就是Tomcat 要给浏览器返回的响应,对应的对象

5. 打包程序

要把当前的这个代码打包成一个压缩包,方便部署到 Tomcat 上

1)修改 pom.xml 加入一些必要的配置,打一个 war 包(Tomcat要求)

    <!--  打一个 war 包  -->
    <packaging>war</packaging>
    <build>
        <finalName>java101</finalName>
    </build>

2)执行打包操作👇

打开 Maven 选项卡,找到Lifecycle -> package,直接双击 package 或右击 Run Maven Build 运行

 待控制台出现 BUILD SUCCESS 表明打包成功。 

在目录中出现的 target 文件夹下可以找到打包结果。

6. 部署程序到 Tomcat 上

将生成的 war包文件拷贝至 Tomcat安装目录下的 webapps 文件夹

 Tomcat 运行后,会自动识别出 war包,并进行解压缩和部署操作。

7. 验证程序

通过浏览器输入对应地址进行验证。

127.0.0.1:8080/java101/hello

👆成功!!

其中:

java101 这个路径称为 Context Path ,表示一个webapp(一个网站)

hello 这个路径称为 Servlet Path,表示这个网站中的一个页面

一个 Tomcat 可以同时部署多个网站(多个webapp),每个网站(webapp)又有多个页面(Servlet)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值