JavaEE——手把手教你实现简单的 servlet 项目

一、什么是 Servlet

Servlet 是一种实现 动态页面的技术。是由 Tomcat 提供给程序员的 一组 API,用来帮助程序员简单高效的开发 web app。

网页分为两类:
静态页面:页面的内容是固定不变的。(一个单纯的 HTML 页面)
动态页面:页面内容随输入的参数的不同而改变。(是 HTML + 数据 组成)

二、创建一个简单的 Servlet 程序

这里,我们使用 Servlet 程序实现出一个 Hello world 打印。将其部署到 Tomcat 上。通过 使用浏览器访问 ,的形式得到 Hello world 字符串。

这里的实现相对于直接使用某一种语言进行打印而言,还是比较复杂的。这里大致分为 7 个步骤。

  1. 创建项目
  2. 引入依赖
  3. 创建目录结构
  4. 编写代码
  5. 打包程序
  6. 部署程序
  7. 验证

下面,我会就上面的 7 个步骤依次进行详细的解释。

1. 创建项目

此处创建的项目被称之为 Maven 项目
maven 是一个 “工程管理” 工具。

所谓 “工程管理” 管理的是下面的几个内容

  1. 规范目录结构
  2. 管理依赖 (使用什么第三方库,都会进行处理)
  3. 构建
  4. 打包 等。。。

要完成这里的工作,主要使用的就是上面所标注的两点。

在这里插入图片描述
如上图所示,创建一个新的项目,选择 maven 之后选择好存储目录,最后直接点击 完成 即可。

此处需要注意,如果是第一次创建 maven 项目,需要从 中央仓库加载一些 maven 依赖,可能需要等待较长的时间。

当成功创建项目后,在左侧的文件区域,会出现下图的内容 (大致了解其中不同文件夹的含义):
在这里插入图片描述

2.引入依赖

在上面我们提到,Servlet 代码,是基于 Tomcat 的 API 来实现的。所以,这里需要通过第三方库进行引入。

这里的第三方库是 maven 官网,相关链接如下:maven网站

进入网站,在搜索框输入 Servlet 会得到下面的页面:
在这里插入图片描述
如图,罗列出的第一个就是我们要选择的。
点击进入,这里会有多个版本的选择。根据需要,选择合适的版本。(ps:本人在这里使用的 Tomcat 8 对应的版本选择 3.1.0)

点击进入
在这里插入图片描述
如图所示,页面向下滑动,我们会看到这段字符。

在这里,我们将不会使用以往的方式下载 jar 包进行引入。而是直接将这段文字复制导入即可。(其实也就是该依赖在 maven 仓库的坐标)

在这里插入图片描述
如图所示,这里标记了两处标签。
需要注意的是:

  • 绿色 标记的 “dependencies” 是自己先写上去的。属于 project 顶级标签的子标签。
  • 红色 标记的 “dependency” 是其中的一个依赖。如果需要有多个依赖加入。以一组 “denpendency” 为单位添加即可。

3. 创建目录

虽然 maven 已经帮助我们创建出了一些目录,但是仍然有欠缺。
此处是使用 maven 开发一个 web 程序,还要有别的目录。

所需要创建的目录:

  1. 在 main 目录下创建出一个 webapp 目录。
  2. 在 webapp 目录下创建 WEB-INF 目录
  3. 在 WEB-INF 目录下创建一个 web.xml 文件。

如图:
在这里插入图片描述

解释 web.xml 在这里的作用

当前,我们实现的是 Servlet 程序,相较于之前的代码,此处是没有 main 方法的。

我们知道,main 方法就是让程序启动的一个关键。就好比是汽车的发动机。

对于此处的程序,我们可以将其类比为一列火车。
这里的 Servlet 程序是基于 Tomcat 来实现的。
Servlet 在这里就是没有动力的车厢。
Tomcat 在这里就是一节火车头。
需要注意的是,要成为一列火车,是需要将车头与车厢进行连接的。
此时,目录下的 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>

在这里插入图片描述
如图所示,这里 web.xml 中的代码是固定的,直接引用即可

4.编写代码

首先,我们需要在 Java 文件夹中创建出一个 class 类,来写入后续的代码。

这里先直接展示起手的代码:

public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doGet(req, resp);  
    }
}

代码分析:
在这里插入图片描述
这里重写的 doGet 方法被 Tomcat 调用时,当收到一个 get 请求时,就会触发这个方法

对于 req (请求):由 Tomcat 解析并构造。
对于 resp (响应):默认是一个空对象。
(这里不是 null,只是 new 了一个对象,其中的属性没有设置)
所以此时,就需要程序员根据需要设定响应

此时代码就需要进行修改

@WebServlet("/test")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 这个代码必须被注释掉,在父类中,这个方法只是返回了一个错误页面
        //super.doGet(req, resp);

        // 这个是在服务器的控制台进行打印
        System.out.println("hello world");
        //想要将 hello world 返回到客户端,就需要使用下面的代码
        // getWriter 会得到一个 Write 对象
        resp.getWriter().write("hello world");
    }
}

代码分析:
在这里插入图片描述
到这里,我们还需要注意代码最上面的一个注解,如图:

在这里插入图片描述

注解在这里的作用,就是针对方法进行额外的 “解释说明” 对这个方法赋予额外的含义

这里的作用就是将类与 HTTP 的请求路径关联起来。

5. 打包程序

将程序编译好后,再讲这些 .class 文件构成压缩包,但是此处要打的是一个 war 包,不是jar 包
(war 是 Tomcat 专属的用来描述 webapp 的程序,一个 war 就是一个 webapp)

这里直接使用 maven 就可以直接打包,如图:
在这里插入图片描述
在这里插入图片描述
当出现上图中的情况时,就表明打包成功。

注意事项:
这里需要注意的是,在默认情况下 maven 打的是一个 jar 包
对此,就需要在 .xml 文件中进行调整,如图:
在这里插入图片描述

打包完成后,在 target 文件中,就可以找到我们打出来的包。
在这里插入图片描述

6. 部署

这一步的操作非常简单,只需要直接将 war 包拷贝到 Tomcat 的 webapp 中即可。

之后启动 Tomcat 即可。

7.验证

将压缩好的 war 包放入 webapp 中后,启动 Tomcat。

在这里插入图片描述

运行结果:

  • 在网页页面
    在这里插入图片描述
  • 在 Tomcat 服务器端口
    在这里插入图片描述
    如图,我们发现出现了多个结果。

出现这样的结果,原因是,只要访问一次页面,就会在控制台出现一次

整体过程总结

  • 首先,在浏览器中输入对应的 URL 后,浏览器就会构造一个 HTTP GET 请求,发送给 Tomcat。
  • 第二,Tomcat 就会根据第一路径,确定具体的 webapp
  • 第三,又会根据具体的 第二级路径 ,确定了调用的类
  • 第四,就会通过 GET / POST 方法来确定要调用 HelloServlet 中的哪一个方法 (doGet , doPost)
  • 最后,Tomcat 就会执行对应的代码完成对应的工作。

三、使用 Smart Tomcat 插件简化项目创建

在上面的介绍中,我们已经知道要创建出一个 servlet 项目,一共有 7 个步骤。

为了简化创建的过程, IDEA 为我们提供了一个 关于 Tomcat 插件
可以省去 手动打包、手动部署 这两个过程。

图示插件查找、安装过程。

在这里插入图片描述

首次使用的简单配置

  1. 需要先新增一个运行配置
    在这里插入图片描述
    点击 “添加配置”。

  2. 点击 + 并选择 Smart Tomcat
    在这里插入图片描述
    1. 首次配置创建需要选择 Tomcat 的安装路径
    2. 需要注意的是,这里代码执行的目录,必须到 webapp 文件夹处!(与将打好的 war 包存放到 webapp 由异曲同工之处。)

使用 Smart Tomcat 创建项目

在完成上面的添加操作后,我们就可以直接在 idea 中点击绿色三角号进行运行了。

在这里插入图片描述
但是,这里需要注意的是,此处的链接是不能直接点的,直接点击,触发的肯定是 404

这是因为此处没有包含 servlet path,即就是代码中 注释 提供的路径

在这里插入图片描述
如上图所示,在此处添加 “/test” 就可以成功访问。

简单解释 Smart Tomcat 工作原理。
Tomcat 的工作方式有两种:

  • 第一种,就是直接将要使用的 war 拷贝到 webapps 中进行访问执行。
  • 第二种,就是在启动时,显示指定一个特定的 webapp,让 Tomcat 单独加载当前的项目。(Smart Tomcat 就使用的这一种)

四、创建项目时可能遇到的几个问题。

  1. 404
    在这里插入图片描述
    可能的问题是:
    web.xml 内容错了、路径写错了、文件的位置错误。。。

  2. 405
    在这里插入图片描述
    可能的问题是:
    没有写 doGet 方法、
    super.doGet 没有删掉,如图:
    在这里插入图片描述

  3. 500
    遇到这个就可以很明显的说明代码中出现了错误,直接看报错信息就可以解决大部分问题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值