【Java】Servlet——使用Servlet在【tomcat 】上部署程序


前言

本人是一个普通程序猿!分享一点自己的见解,如果有错误的地方欢迎各位大佬莅临指导,如果你也对编程感兴趣的话,互关一下,以后互相学习,共同进步。这篇文章能够帮助到你的话,劳请大家点赞转发支持一下!


一、创建项目

此处创建的是maven项目。
maven是一个构建工具,功能是帮助我们去构建,测试,打包一个项目。

创建Maven项目

1️⃣选中Maven,点击Next

在这里插入图片描述

2️⃣3️⃣4️⃣5️⃣设置项目名称与路径(此处的路径不要随便设置,一会要用到),点击Finish
在这里插入图片描述

完成创建项目(首次创建maven项目,IDEA会从互联网上加载很多依赖,需要花一定时间,此时需要保证网络畅通)。
在这里插入图片描述


介绍Maven项目

每个Maven项目,都会有一个pom.xml 配置文件,这个文件里描述了maven项目的各方面的内容。
在这里插入图片描述


二、引入依赖

Servlet 是 tomcat 提供的api,不是标准库自带的,因此需要额外下载安装。

  1. 进入中央仓库https://mvnrepository.com/

  2. 在搜索框中搜索 Servlet,点击 Java Servlet API
    在这里插入图片描述

  3. 下滑找到与Tomcat对应的版本,并点击。(查询对应版本:https://tomcat.apache.org/whichversion.html;此处我对应的版本是3.1.0)在这里插入图片描述

  4. 复制下面的代码在这里插入图片描述

  5. 在最顶层标签 project标签下 ,打出 dependencies标签 ,然后把 代码粘贴在dependencies标签中 在这里插入图片描述

  6. 第一次引入依赖时,会自动下载接口,如下方有下载进度条,即正在下载需等待,如果没有,点击刷新按钮,即可开始下载。在这里插入图片描述


三、创建目录

以下的目录结构,目录位置,目录名字,文件名字与格式内容,要与下面的步骤保持一模一样。

  1. 在main下面创建一个新的目录webapp(New的是Directory)在这里插入图片描述
  2. 在webapp下再创建一个新目录WEB-INF(New的是Directory)在这里插入图片描述
  3. 在WEB-INF下在创建一个新文件web.xml(New的是File),并插入以下代码。在这里插入图片描述

第三行代码可能会冒红报错,原因是IDEA可以正确识别Java代码,不一定能正确识别其他文件,比如这里的xml文件。
这个报错可以忽略不管他,也可以alt + 回车解决掉。

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

四、编写代码

在java目录下创建 HelloServlet类。

如果继承HttpServlet类,报错或没有提示,说明没有正确的引入依赖,可以尝试去刷新一下。

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

// 为这个类加上注解
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {

    // 重写doGet方法
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 一定要把父类的doGet注释或者删除掉,父类的doGet会直接抛出405
        // super.doGet(req, resp);

        // 服务器的控制台打印 "hello world" ,服务器能看到,客户端看不到
        System.out.println("hello world");

        // 向resp 的 body 中写入 "hello world"这个字符串,这个内容就会被HTTP响应返回给浏览器,浏览器就会显示
        resp.getWriter().write("hello world");
        // resp.getWriter()得到resp内部的字符流Write对象,再通过write就可以将数据写入到HTTP响应中的body
    }
}

在这里插入图片描述

小贴士

doGet方法要实现的功能就是根据请求计算出响应,再将想要写入resp响应对象中。 Tomcat会自动帮助我们完成读取解析请求,将响应写回客户端的功能

注解(@xxxxxxx)通常用来修饰一个类或者一个方法。实际应用中Tomcat中会有许多类许多方法,注解的作用通俗点说就是告诉Tomcat要调用的是哪个类哪个方法

这个代码,并不是独立运行,而是插入到Tomcat中,让Tomcat中的main方法在合适的时机调用,因此不需要咱们自己写main方法。


五、打包

  1. 在pom.xml中指定打包格式与包名称。
    注意:是在object标签下

    在这里插入图片描述

  2. 双击package,或右键运行,即可开始打包List item

  3. 出现BUILD SUCCESS代表打包成功。在这里插入图片描述

小贴士
Java当中的压缩包是jar与war
普通的java程序打包成jar包
要部署到tomcat的程序打包成war包
war包可以看作是特别定制的tomcat版jar包
war包是tomcat的专属格式,里面有一些特殊的目录结构和文件。


六、部署

  1. 找到打包好的war包(在你创建的项目中的target目录中)
    在这里插入图片描述

  2. 将war包拷贝到tomcat的webapps目录下在这里插入图片描述

  3. 在tomcat的bin目录下找到并运行startup程序(Windows系统用bat格式;Linux系统用sh格式)。就部署成功了在这里插入图片描述

小贴士
之所以出现乱码是因为tomcat的字符集与Windows命令行用的不是同一个字符集。此处乱码也没关系,依然部署成功。

部署成功后,tomcat会自动解压
在这里插入图片描述


七、验证

在浏览器地址栏输入URL,构造GET请求。

127.0.0.1:8080/hello_servlet/hello
URL也不是随便输入就行的!
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
使用Fiddler进行抓包
在这里插入图片描述

注意!!!
不是Tomcat一启动,咱们代码中的doGet就会执行,而是遇到GET请求,且URL中的路径还要匹配时, 才会执行。


总结

以上就是今天要分享的使用servlet写出的第一个hello world,加油加油加油!!!

路漫漫不止修身,也养性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值