利用Servlet编写第一个“hello world“

利用Servlet编写第一个"hello world"

  • 创建 Maven 项目
  • 引入依赖
  • 创建目录
  • 编写代码
  • 打包代码
  • 部署
  • 程序验证
  • 结尾

创建 Maven 项目


Maven 是一个构建工具
功能是帮助我们去构建, 测试, 打包一个项目

  • Java 中的构建工具包括
    • Ant(一款较老的构建工具)
    • Maven(当前比较主流的构建工具)
    • Gradle(一款较新的构建工具, 当前主要是 Android 生态使用)

首次创建 Maven 项目, Idea 会从互联网加载很多的依赖(需要花费一定的时间)

利用Servlet编写第一个“hello world“_第1张图片

创建 Maven 项目后, 会有一个 pom.xml 配置文件

利用Servlet编写第一个“hello world“_第2张图片

利用Servlet编写第一个“hello world“_第3张图片
利用Servlet编写第一个“hello world“_第4张图片

利用Servlet编写第一个“hello world“_第5张图片

引入依赖


Servlet 是 Tomcat 提供的 API(不是标准库提供)
表示需要额外下载 Servlet

登录 Maven 中央仓库
Maven 中央仓库

在搜索框中输入 servlet

利用Servlet编写第一个“hello world“_第6张图片

确认后弹出如下界面

利用Servlet编写第一个“hello world“_第7张图片

选择第一个 Java Servlet API

利用Servlet编写第一个“hello world“_第8张图片

选择版本号为 3.1.0
Servlet 3.1.0 版本对应的 Tomcat 版本为 8.5

利用Servlet编写第一个“hello world“_第9张图片
复制代码到 pom.xml 配置文件中

利用Servlet编写第一个“hello world“_第10张图片

在 pom.xml 配置文件中手动输入

利用Servlet编写第一个“hello world“_第11张图片

此处的 jar 包, 默认被下载在本地的隐藏目录中

利用Servlet编写第一个“hello world“_第12张图片

创建目录


创建 webapp

利用Servlet编写第一个“hello world“_第13张图片

利用Servlet编写第一个“hello world“_第14张图片

利用Servlet编写第一个“hello world“_第15张图片

创建 WEB-INF

利用Servlet编写第一个“hello world“_第16张图片

利用Servlet编写第一个“hello world“_第17张图片

利用Servlet编写第一个“hello world“_第18张图片

创建 web.xml

web.xml 应用于 Tomcat
pom.xml 应用于 Maven

利用Servlet编写第一个“hello world“_第19张图片

利用Servlet编写第一个“hello world“_第20张图片
利用Servlet编写第一个“hello world“_第21张图片
复制如下代码到 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>

这里可能出现报红
但不会影响到程序

利用Servlet编写第一个“hello world“_第22张图片

编写代码


创建一个类

利用Servlet编写第一个“hello world“_第23张图片
继承 HttpServlet
HttpServlet 来自 Servlet 的 jar 包(引入的依赖)

利用Servlet编写第一个“hello world“_第24张图片

重写 doGet() 方法

  • HttpServletRequest, Http 请求
  • HttpServletResponse, Http 响应
  • doGet, 根据请求计算响应

一个服务器程序, 其基本工作流程大致如下

  • 读取请求并解析
  • 根据请求计算响应
  • 将响应返回到客户端

利用Servlet编写第一个“hello world“_第25张图片

此处需要将 super.doGet(req, resp); 注释掉

因为 doGet() 方法会返回 405 页面

405 Method Not Allowed 表示方法不被允许

利用Servlet编写第一个“hello world“_第26张图片
利用Servlet编写第一个“hello world“_第27张图片

打印 hello world

  • 在服务器打印 hello world, System.out.println("hello world");
  • 在客户端打印 hello world, resp.getWriter().write("hello world");

利用Servlet编写第一个“hello world“_第28张图片

为 HelloServlet 添加注解

利用Servlet编写第一个“hello world“_第29张图片

代码编写完毕
此处并不需要编写 main 方法
这是因为上述代码并非独立运行, 而是插入到 Tomcat 中, 由 Tomcat 调用

打包代码


由于程序不能独立运行(需部署到 Tomcat 运行)
因此需要将代码进行打包操作

类似于搬家, 需要先收拾物品(打包)
然后再将其搬运到新的地方(部署)

  • 在 Java 中, 使用的压缩包
    • jar(普通的 Java 程序打成 jar 包)
    • war (部署到 Tomcat 的程序打成 war 包)

点击右侧 Maven, 弹出如下界面

利用Servlet编写第一个“hello world“_第30张图片

  1. 点击 Servlet_s
  2. 点击 Lifecycle
  3. 找到 package, 双击进行打包
  • 双击 package 后, 执行如下操作
    • 检查代码中是否存在一些依赖, 依赖是否下载好
    • 将代码进行编译, 生成一堆 .class 文件
    • 将 .class 文件, web.xml 按照一定格式进行打包

利用Servlet编写第一个“hello world“_第31张图片

弹出如下界面表示打包成功

利用Servlet编写第一个“hello world“_第32张图片

此时左侧界面会生成 target 目录

利用Servlet编写第一个“hello world“_第33张图片

仔细查看发现此时的压缩包格式是 jar 包

将压缩包格式调整为 war 包
需要调整 pom.xml 描述生成的包的包格式

war复制到 pom.xml 即可

利用Servlet编写第一个“hello world“_第34张图片

此处也可以修改打出的包的名称
将打出的包的名称修改为 hello_servlet
利用Servlet编写第一个“hello world“_第35张图片

打出的 war 包, 且名称为 hello_servlet

利用Servlet编写第一个“hello world“_第36张图片

部署


部署
将打好的 war 包, 拷贝到 Tomcat 的 webapps 目录中

利用Servlet编写第一个“hello world“_第37张图片
利用Servlet编写第一个“hello world“_第38张图片

启动 Tomcat 后, 自动将 war 包进行了解压缩

利用Servlet编写第一个“hello world“_第39张图片

程序验证


浏览器效果

利用Servlet编写第一个“hello world“_第40张图片

Tomcat 效果(服务器)

利用Servlet编写第一个“hello world“_第41张图片

  • hello_servlet, 称为 Context Path / Application Path
    标识了一个 webapp(就是这个 webapp 的目录名 / war 包名)
    利用Servlet编写第一个“hello world“_第42张图片
  • hello, 称为 Servlet Path
    • 标识当前请求调用哪个 Servlet 类的 doGet()
    • 一个 webapp, 可以有多个 Servlet
      利用Servlet编写第一个“hello world“_第43张图片

结尾

创作不易,如果对您有帮助,希望您能点个免费的赞
大家有什么不太理解的,可以私信或者评论区留言,一起加油

你可能感兴趣的:(JavaEE,servlet,java,tomcat)