用Servlet 编写hello world
创始人
2024-02-07 07:50:38
0

     第一次接触 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 : 存放代码中需要依赖的资源
  • text: 测试代码
  • 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 中

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

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

3、创建目录结构

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

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

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

 

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

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

④ 编写 web.xml 往 web.xml 中拷贝一下代码,这部分代码是固定的,不必去背,也不必修改

Archetype Created Web Application

4、编写代码

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

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

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

      第三步:打印 helloword

@WebServlet("/helloworld")
public class HelloServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 在Tomcat日志中打印helloworldSystem.out.println("helloword");// 给客户端返回helloworld 也就是在客户端页面打印helloworldresp.getWriter().write("helloworld");}
}

@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 标签中下加下面一段代码即可。

    warServlet

 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求取转换步骤如下:

相关内容

热门资讯

自由的英文名言 关于自由的英文名言  自由是一个政治哲学概念,在此条件下人类可以自我支配,凭借自由意志而行动,并为自...
礼貌的名人名言 有关礼貌的名人名言  在学习、工作乃至生活中,大家都知道一些经典的名言吧,巧用名言有助于我们正确对待...
赞美老师的名言 赞美老师的名言(精选50句)  名言是一个汉语词汇,基本意思是很出名的说法,著名的话,一般指名人说的...
经典名言录 经典名言录  名言录  1、一寸光阴一寸金,寸金难买寸光阴。——中国谚语  2、浪费别人的时间是谋财...
感恩教师节名言警句 感恩教师节名言警句  在平时的学习、工作或生活中,大家都对那些经典的名言警句很是熟悉吧,在议论文中,...
历史的名言 关于历史的名言大全  1、历史本身是自然史的一个现实的部分,是自然生成为人这一过程的一个现实的部分。...
交通安全名言警句大全   车在轨上行是幸福路,人在轨上走是危险路。如下是中国人才网给大家整理的交通安全名言警句大全,希望对...
朱熹的名言名句 朱熹的名言名句集锦  1、涵养、致和、力行三者,便是以涵养为首,致和次之,力行又次之。  2、心,生...
教师人生格言 教师人生格言大全  创新是人类进步的不竭动力!  当代能做老师的人必定是不平凡的人;因为教育事业本身...
歌颂母爱的名言摘抄 有关歌颂母爱的名言摘抄  在平平淡淡的日常中,大家总免不了要接触或使用名言吧,下面是小编为大家整理的...
毕达哥拉斯名言   毕达哥拉斯名言  1、友谊是一种和谐的平等。  2、要这样生活;使你的朋友不致成为仇人,使你的仇...
伤感的名言 伤感的名言  1.用一转身离开,用一辈子去忘记。  2.明知道天要下雨就该带把伞,明知道不会有结果就...
犯罪心理第七季的励志名言 犯罪心理第七季的励志名言  1.遗伤难愈——伊莉莎白一世  2.若为奇迹,一切证据皆可为之,若为事实...
我的人生格言 我的人生格言我的人生格言如果你的心灵很敞亮,很仁厚,你有一种坦率和勇敢,那么你有可能收获到许多意想不...
蒙田名言   蒙田名言  1、生命的价值不在于时间的长短,而在于你如何利用它。  2、作为一个父亲,最大的乐趣...
中国古代爱情的名言名句 中国古代关于爱情的名言名句(精选115句)  无论是身处学校还是步入社会,许多人都接触或是使用过一些...
人生励志名言 100句人生励志名言精选  1、没有行动的承诺,不过是一席空话。  2、坚持最初的梦想,年轻没有失败...
李嘉诚名言 李嘉诚名言(通用40句)  扩张中不忘谨慎,谨慎中不忘扩张……我讲求的是在稳健与扩张中取得平衡。船要...
目标与理想的名言警句 目标与理想的名言警句  平凡朴实的梦想,我们用那唯一的坚持信念去支撑那梦想,目标与理想的名言警句。以...
张爱玲名人名言 张爱玲名人名言汇总80句精选  人生最可爱就在那一撒手。下面这篇文章是小编收集整理的张爱玲名人名言,...