文章目录
一、创建servlet程序
1、使用IDEA创建一个maven项目
选择servlet程序要存放的路径
2、引入依赖
2.1 maven是一个构建工具
创建maven项目的目的也是基于maven所具有的功能。maven是一个构建工具,在项目中起着打包项目、编译项目、管理项目依赖…的作用。因此在项目中引入的诸多依赖其实归功于maven对其进行管理、下载…、
2.2 pom.xml文件
maven项目创建完毕之后,会自动生成一个pom.xml文件,因为此时我们创建的是一个servlet程序,所以需要在pom.xml文件中引入servlet API 依赖的jar包。
2.3 中央仓库
查找依赖都可以在中央仓库上查找:https://mvnrepository.com/ 中央仓库是一个开源、免费、资源众多的网站,在上面可以找到众多程序员写程序时所需、必备的驱动包、依赖、API…
在中央仓库搜索servlet的依赖。
可以在 http://tomcat.apache.org/whichversion.html 查询Tomcat版本与servlet版本的对应关系。
< dependencies> < /dependencies>标签内部放置项目依赖的 jar 包, maven 会自动下载依赖到本地.
3、创建层级目录
maven项目建立好之后,会自动生成如下一些目录:
src:存放源代码
main/java:存放.java文件
main/resources:存放一些资源文件
test/java:存放项目的测试代码
除了含有IDEA自带的这些目录之外,还需要我们手动添加一些目录。
3.1、 创建webapp目录
1)、在目录main下创建一个目录(directory)weapp
3.2、创建WEB-INF目录
2)、在目录webapp下创建一个目录WEB-INF
3.3、创建web.xml文件
3)、在目录WEB-INF下创建一个文件web.xml
然后将以下的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>
webapp目录是未来部署到Tomcat的一个重要目录,一些静态资源例如.html,css都可以存放在webapp目录下。
还有一个重要的文件:web.xml。Tomcat找到这个文件才能正确处理webapp中的动态资源。
4、编写servlet代码
4.1创建一个类TestServlet,继承自 抽象类(abstract class) HTTPServlet。
4.2在类的上方加上注解@WebServlet(“/time”)表示Tomcat收到的请求中是路径为/time的请求才会调用TestServlet这个类的代码。
4.3重写doGet()方法。doGet()方法的参数有两个,分别是HTTPServletRequest req,以及HTTPServletResponse resp,这两分别表示HTTP请求以及服务器返回的HTTP响应。doGet()方法会在收到get请求时被调用。
4.4HTTPServletRequest表示HTTP请求,Tomcat按照HTTP请求的格式把字符串格式的请求转成一个HTTPServletRequest对象,后续想获取请求中的信息(method、url、protocol、header、body),都可以通过这个对象获取。
4.5HTTPServletResponse表示HTTP响应。代码中把响应对象构造好。(构造响应的状态码、header、body等)
4.6resp.getWriter()会获取到一个流对象,通过这个流对象可以写入一些数据,写入的数据会被构造成一个HTTP响应的body部分,Tomcat会通过object.writeValueAsString(对象)把整个响应转成字符串,然后通过socket写回给浏览器。
从上述代码可知:
(1)、我们上面所写的代码并没有出现main()方法来作为程序的入口,是因为main()已经被包含在了Tomcat里了,我们写的代码会被Tomcat在合适的时机调用起来。
(2)、那我们创建了一个maven项目之后,随便写个类就能被Tomcat调用吗?
当然不是。
主要需要同时满足3个条件:
a)、自己所写的类需要继承自HTTPServlet类。
b)、需要在类的上方加上@WebServlet(“/xxx”)注解,以便Tomcat在收到请求时根据注解里的路径,明确路径是什么之后才会调用相应匹配路径的代码。
c)、这个类需要重写doGet()或者doPost()、doXxx()…方法。
5、打包程序
1)、点击项目右侧的maven
build success 之后就会在target目录下生成了一个jar包,jar包里存放了java的.class文件,但是我们并不是需要一个jar包,而是需要一个war包,Tomcat需要识别的是war包。
5.1 war包和jar包的区别
a)、jar包是普通的java程序打包的结果,里面会包含一些.class文件。
b)、war包是java web的程序,里面除了会包含.class文件之外,还会包含HTML、CSS、JavaScript,图片、jar包,这些打成war包才能被Tomcat识别。
所以,即使通过maven将程序打成jar包还远远不够。于是,
1)、先在pom.xml中新增一个< packing>< /packing>便签,表示的是将程序打成一个war包。
2)、再在pom.xml中新增一个< build>< /build>标签,同时在< build>< /build>标签里面内置一个< finalName>< /finalName>标签,< finalName>war包名字< /finalName>标签表示打出的war包名字叫什么,此处war包名字自定义,但一般与创建的类类名一致。
做完这两步,重新使用maven打包项目,就能看到新生成的war包结果了:
6、部署程序
把生成的war包拷贝到Tomcat的webapps目录下,启动Tomcat,Tomcat就会自动把war包解压缩。
7、验证程序
在浏览器中输入URL,能打开页面即为成功。
注意:URL 中的 PATH 分成两个部分, 其中 testNetDesign为 Context Path(一级路径), time 为 Servlet Path(二级路径)。
二、使用Smart Tomcat将打包程序、部署程序两个步骤简化,一步到位。
1、pluging(插件)
手动拷贝war包到webapps目录下比较麻烦,还有更方便的部署方式,在此之前,我们首先来了解一下pluging。什么是pluging?IDEA是一个功能强大的软件,但也并不是什么功能都已经配置齐全,一些小众的、特定的功能,IDEA提供了对应的pluging在商店中,供用户下载后配置去使用。pluging(插件)就是对程序的一些特定场景, 做出一些特定的功能的扩展.
2、下载Smart Tomcat
在IDEA的应用商店搜索Smart Tomcat,然后进行下载。
3、配置Smart Tomcat
Smart Tomcat 下载完成之后,将Smart Tomcat 配置到项目中。