• 用Servlet 编写hello world


    目录

    0、准备工作

    1、创建项目

    2、引入Servlet依赖

    3、创建目录结构

    4、编写代码

    5、打包程序

    6、部署程序

    7、验证程序

    8、使用 smart Tomcat 插件部署

         第一次接触 Servlet,使用 Servlet 编写代码并配合 Tomcat 在浏览器中展示代码效果,也算是自己这么长时间学习java的一次飞升吧。

         本文总结了六步使用 Servlet 编写 helloworld步骤,希望给初学Servlet的同学一些帮助。


    0、准备工作

           1)了解并安装 Tomcat

    在编写代码之前,大家需要安装 Tomcat !!

    如果没有安装的haute,可以参考该文章进行安装:Tomcat 安装和简单介绍

           2)maven 介绍

         maven 是一个构建工具,也就是 build (编译、打包、部署...)。

         我们在编写Servlet项目时,会遇到一些复杂的程序,编译和打包起来特别麻烦。比如 A 依赖 B,B 依赖 C,此时如果想要编译运行A,就必须先编译运行 B,要想编译运行 B,就必须先编译运行 C。

         而 maven 就是为了解决这个问题的,使我们在开发比较复杂的项目的时候,也可以比较方便的进行一些列操作(编译、打包、管理依赖...)。 

    1、创建项目

           首先创建一个maven项目

     此处我的 idea 版本是 2022版的

     项目创建好之后的目录结构如下

    src : 用来存放源代码

    • main :业务代码  
      • resources : 存放代码中需要依赖的资源
    • test: 测试代码
    • pom.xml : 项目中的全局配置文件(写了很多与项目相关的配置属性)

    2、引入Servlet依赖

    Servlet 并不是 Java 标准库自带的,要想使用,我们就需要额外的下载安装,并引入项目中!

    此时就要借助 maven ,把我们使用的库里依赖的东西,自动从中央仓库上,下载下来

         ①在中央仓库 https://mvnrepository.com/ 中,搜索 Servlet,结果中第一个就是我们需要下载的

          ② 根据 Tomcat 选择相对应的版本,这里我选择的是 3.1-0版本

     

     Servlet 3.1.0 和 Tomcat 8.5 和 jdk 8 是配套的

         ③ 选择 maven,把maven里的xml 复制到 pom.xml 中

    1. <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    2. <dependency>
    3. <groupId>javax.servlet</groupId>
    4. <artifactId>javax.servlet-api</artifactId>
    5. <version>3.1.0</version>
    6. <scope>provided</scope>
    7. </dependency>

      注意:复制之前,要先创建标签,然后把上述xml 复制进去

    标签内部放置项目依赖的 jar . maven 会自动下载依赖到本地
    此处如果大家网络不好,复制进去的代码就可能报红,大家可以点击右侧maven,然后点击刷新等待即可 

    3、创建目录结构

       虽然 maven 已经给我们创建出一些目录了,但是还不够,我们需要再创建一个符合 Tomcat 要求的目录结构。

         ① 在 main 目录下,创建 webapp 目录

         ② 在新建的 webapp 目录下,创建WEB-INF 目录

     

         ③ 在新建的 WEB-INF 目录下,创建 web.xml 文件

     注意:这一串目录结构、位置、名字、层次,都得严格一致!!!

         ④ 编写 web.xml
    往 web.xml 中拷贝一下代码,这部分代码是固定的,不必去背,也不必修改
    1. web-app PUBLIC
    2. "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    3. "http://java.sun.com/dtd/web-app_2_3.dtd" >
    4. <web-app>
    5. <display-name>Archetype Created Web Applicationdisplay-name>
    6. web-app>

    如果报以下错误

    URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)

     按 Ctrl + Alt + s,把链接添加进去就行了。

    4、编写代码 

    我们需要写的代码,需要放在 java 目录,比如创建一个类 HelloServlet

     

          第一步:把创建的 HelloServlet 类继承 HttpServlet

          第二步:实现父类 doGet方法,并把super方法删除!!

          第三步:打印 helloword

    1. @WebServlet("/helloworld")
    2. public class HelloServlet extends HttpServlet {
    3. @Override
    4. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    5. // 在Tomcat日志中打印helloworld
    6. System.out.println("helloword");
    7. // 给客户端返回helloworld 也就是在客户端页面打印helloworld
    8. resp.getWriter().write("helloworld");
    9. }
    10. }

    @WebServlet("/helloworld"):

    • 此处写下的 "/helloworld" 意思是 GET请求并且 URL 里面路径是 /helloworld 的请求,才会生效,才会调用这个 doGet 方法。
    •  也就是说给不同的路径,关联上不同的类!!!
    • "/helloworld" 是一个虚拟的资源,硬盘上并没有这个 "/helloworld" 文件

    doGet: 表示当前 Tomcat 在收到某些 GET 请求的时候,会调用该方法

    • 作用:根据请求,计算响应        
    • 参数:
      • req : 请求(浏览器给Tomcat发的数据)
      • resp : 响应(Tomcat给浏览器发回的数据)

    5、打包程序

       当前写的 Servlet 代码,是没有main方法的,也就是所运行不起来。所以我们要在该 Servlet 代码打包方法 Tomcat 程序中,才能运行。

        使用 maven 打包,默认会生成一个jar 包,而我们需要的 war 包,所以我们就要修改配置文件,在pom.xml 中project 标签中下加下面一段代码即可。

    1. <packaging>war</packaging>
    2. <build>
    3. <finalName>Servlet</finalName>
    4. </build>

     finalName标签中的是war包的名字,可以自定义

            然后使用 maven 进行打包。打开 maven 窗口 (一般在 IDEA 右侧就可以看到 Maven 窗口, 如果看不到的话,可以通过 菜单 -> View -> Tool Window -> Maven 打开)

            最后展开 Lifecycle , 双击 package 即可进行打包。

     打包成功的话,底部会出现一个success 文字 。

    此时就可以在右侧target目录中看见我们打包的war包了

    6、部署程序

         我们把 war 包拷贝到 Tomcat 的 webapps 目录下。

         启动 Tomcat,Tomcat 就会自动把 war 包解压缩。 

    7、验证程序

    此时通过浏览器访问   http://127.0.0.1:8080/Servlet/helloworld   就能在浏览器中看到结果啦

     终端中,Tomcat 也会打印日志 helloworld

     注意:URL 中的PATH分成两个部分,其中 Servlet 为 Context Path,helloworld 为 Servlet Path

    在浏览器中输入URL求取转换步骤如下:

    8、使用 smart Tomcat 插件部署

          在实际开发中,如果我们需要调试该代码,每修改代码一次,我们就要重复打包部署,这样就给浪费大量时间。所以为了简化该部署操作,我们可以使用 smart Tomcat 插件来简化我们部署的过程!

    ① 安装 Smart Tomcat 插件

    ② 配置 smart Tomcat

    点击 Add Configure -> 点击右上角 + -> 点击smart Tomcat

    这里配置上smart Tomcat 信息

    NAME :给该配置起名,可以随便写

    Context Path :浏览器 url 访问时候的第一级路径,标识 webapp 的。

    Tomcat server:把Tomcat本地下载地址传入

    ③ 运行smart Tomcat

     配置完后点击右上绿色的三角符号运行

    注意:

    1. smart Tomcat 运行日志是红色的,大家不要看见红字就认为是报错!!
    2. 当看见 start Server startup in ??? ms 时就说明运行成功
    3. Tomcat 和 smart Tomcat 都绑定 8080端口,所以运行 smart Tomcat 要先把 Tomcat 关闭,否则会运行失败!!

    ④ 访问页面

         在浏览器访问 http://127.0.0.1:8080/hello/helloworld 就会出现以下页面

     注意路径的对应关系:

  • 相关阅读:
    ElasticSearch 的一些专业概念
    redis集群之主从复制集群的原理和部署
    Java表达式引擎Aviator
    40 行 Python 代码,写一个 CPU
    Istio数据面新模式:Ambient Mesh技术解析
    C++ Reference: Standard C++ Library reference: C Library: cmath: asin
    AgileBoot - 基于SpringBoot + Vue3的前后端快速开发脚手架
    leetcode:6240. 树上最大得分和路径【两次dfs模拟 + 读题题 + 不要用list做py函数的参数!!】
    道可云元宇宙每日资讯|元宇宙行业产教融合共同体成立仪式举行
    python-flask笔记
  • 原文地址:https://blog.csdn.net/weixin_53564801/article/details/127965567