用servlet写一个hello word
哈喽,你好呀.今天要分享的是如何通过servlet在网页上去写一个hello world,还记得我们计算机入门的第一个程序吗,步骤非常简单.但是今天写的这个hello world步骤就有点多啦,但是熟悉之后,也还是很简单的,这里博主总结了6个步骤,快来看看吧~~
目录
1.创建Maven项目
2.引入依赖
3.创建目录
4.编写代码
5.借助Smart Tomcat来简化打包和部署程序.
6.验证程序
1.创建Maven项目
Maven是一个构建工具,在这里我们主要要了解它的依赖管理和打包.创建一个项目时选中Maven,然后点击next:
然后在Name这一栏填写要创建项目的名称,这里我写的是Test.Location这一栏是你项目所在的文件位置,可以自定义其位置.
点击Finish之后,一个Maven项目就创建好了.
如果是第一次使用Maven的话,不一定会像我这么顺利,因为Maven自身会有很多依赖,这些依赖需要通过网络来下载(而我的因为之前用过,所以已经加载好了),由于Maven对应的服务器在国外,所以加载的速度可能会非常慢.idea的下方会有一个读条,表示其加载进度:
Maven项目创建好之后,我们来看一下它的目录结构:
2.引入依赖
之前在创建Maven中提到的依赖,是maven自身为了运行需要的依赖,此处要引入的依赖是写一个Servlet程序所需要的依赖(Srevlet的jar包).我们需要把这个jar包下载到项目中.maven自身支持自动下载并导入依赖的.我们可以从maven的中央仓库(https://mvnrepository.com/)去下载.
直接在这个网站中搜索servlet, 然后点击第一个(Java Servlet API)进入详情页:
点进去之后会发现有好几个版本,在这里我们一定要注意了,版本可不是随便选的,因为servlet还涉及到Tomcat等等,所以我们下载的这个版本最好要与其他软件统一好.否则到某个时候可能会因为这个阴你一手,别问我为什么会知道,照着做就是了.(我用的是java8,Tomcat8.5,所以这里一定要选Servlet3.1 这套搭配是Tomcat官方推荐的) ,我们再点开这个3.1版本的:
根据上图,我们可以选择手动下载这个jar包,就行之前引入jdbc的驱动一样.但是在这里,我们其实不需要去手动下载引入,因为maven自身是支持自动下载的,所以我们只需要将上图中圈出来的那段内容复制到maven项目中的pom.xml文件中.
复制的时候需要注意,我们要先手动创建一个dependencies标签,再把复制的dependency标签粘贴到这里面.如果有多个依赖,都可以复制到dependencies里面,从的的标签名我们也可以看出,它是dependency的复数形式,里面可以放多个dependency标签.
有些同学可能复制过来之后有些地方会标红,不要害怕,首次使用标红就对了,说明你的依赖还没下载到本地,只要你复制过来,一般它就会自动开始下载,如果没有自动下载,可以手动点一下刷新,来触发一下重新下载,然后只需要等一会就行了.(刷新按钮在ieda右侧的maven里面点击这个Maven,会出现以下页面:
刷新按钮就在这啦)
如果需要其他的第三方库,也可以使用同样的方法来进行下载了(也就是引入依赖).
3.创建目录
虽然我们创建maven时已经自动创建好了一些目录,但是我们还需要去创建一些我们自己的目录.这是固定操作,不要问为什么.在main目录里面创建一个webapp,然后在webapp目录下创建一个WEB-INF目录,接着在WEB-INF下创建一个web.xml文件:
创建好之后目录结构就是这个样子了,要严格按照上面的要求来,目录名也要与上图相同.搞错了就芭比Q没得玩了.为什么要这么安排呢,因为Tomcat就是按照这样的目录结构来识别的.这属于Tomcat做出的要求,咱们按照要求就行了.
创建好web.xml之后,我们要将以下这些写入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>
有人就会问了,这段代码什么意思?我只能告诉你,tomcat加载一个你写的程序,就会先读取这个web.xml里的内容.这个不用太过关注,不重要,照着写就是了.后续也不会去修改这个文件.有些同学可能从我这粘贴过去会标红,其实也不用害怕,这没什么,标红就标红吧,在这里并不是报错,不影响你的程序(看到标红而害怕的同学估计是被java的bug给整怕了).
4.编写代码
前面三步就是准备工作,从这步起,就开始编写代码了.
我们在java中创建一个java类,让它继承HttpServlet类:
注意:继承的这个HttpServlet类就是来自于我们刚刚引入的那个servlet依赖,如果这里标红,就去检查一下你的Servlet是否引入正确,如果引入正确试着刷新一下.
这个类创建好之后,我们就要在里面写能实现hello world的代码了.首先我们要重写doGet方法,通过重写让doGet执行到我们自己编写的代码.doGet做的工作,就是Tomcat收到请求之后,到返回响应之前做的工作.不知道你们知不知道在网络编程那块,大致有三步:1.读取请求并解析.2.根据请求计算响应.3.把响应返回给客户端.其中1和3都是有由tomcat自动完成的,这里的doGet完成的就是第二步.这里我们就要区别于之前写的代码了.doGet写完之后,不需要我们自己去调用,是Tomcat自动识别调用的(通过GET请求去触发):
其中doGet参数中的HttpServletRequest就是Tomcat根据收到的HTTP请求生成的对象,doGet里面根据当前的业务逻辑,依据HttpServletRequest生成一个HttpServletResponse.Tomcat再把HttpServletResponse对象构造成HTTP响应报文,返回给客户端.
需要知道的是:doGet的第二个参数,是Tomcat先生成的一个空的对象,然后在doGet里面根据业务逻辑,给这个空对象填充数据..doGet执行完了,Tomcat再把HttpServletResponse对象构造成一个HTTP响应.
注意:我们的类的上面还有一个注解(@WebServlet("/hello")),这个是什么呢?其实就是约定HTTP请求的URL是什么样的path才会调用到当前的这个Servlet类.
5.借助Smart Tomcat来简化打包和部署程序.
写到这里,我们的业务代码就完成了,可是怎么执行呢.我们接下来就需要对其进行打包和部署了,部署完成之后就可以去验证程序了.但是在这里我是借助了IDEA中一个插件,Smart Tomcat,来简化打包和部署的.
安装Smart Tomcat插件:
根据上图进行安装(我已经安装好了,没安装的会有一个绿色的按钮).
安装完成之后,根据以下步骤,我们就可以在tomcat里面去运行这个程序了.首先点击Add Configuration,然后进入这个页面:
点击左上角的"+",选中Smart Tomcat,然后点击ok即可.
此时,我们再点击这里的运行(绿色三角),即可完成编译打包部署,并运行tomcat了.
6.验证程序
此时我们在自己的电脑游览器上输入url:127.0.0.1:8080/Test/hello.一个回车就可以看到我们的hello world打印在页面上啦.
好啦.到这里就结束啦,是不是很简单呢,博主现在也是在学习阶段,如果有写的不对或建议或不懂的地方都可以评论或私聊博主,咱们一起进步呀~~