![轻量级Java EE企业应用开发实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/980/44509980/b_44509980.jpg)
上QQ阅读APP看书,第一时间看更新
3.9 实战:创建基于Servlet的Web应用
本节将演示如何使用Maven创建一个基于Servlet的Web程序。该程序源码可以在hello-servlet目录下找到。
3.9.1 创建动态Web项目
使用以下Maven命令来创建动态Web项目:
![](https://epubservercos.yuewen.com/A99FE4/23721413109387006/epubprivate/OEBPS/Images/Figure-P100_78820.jpg?sign=1739114043-dPWL8d96ooxdgN2tuKIFjf7REibnnHmP-0-586a8d53bbb7075479bf5550da2c52e2)
创建完成之后,能够看到如下的项目结构:
![](https://epubservercos.yuewen.com/A99FE4/23721413109387006/epubprivate/OEBPS/Images/Figure-P100_78821.jpg?sign=1739114043-Acd81ajpZqTXhMh9XItkVFvbrZ2f4mNC-0-c97215731d8cf802497772bf020ce28f)
3.9.2 创建Servlet实现类
为了能使用Servlet API,我们需要在项目的pom.xml文件中引入Servlet API的Maven依赖。添加内容如下:
![](https://epubservercos.yuewen.com/A99FE4/23721413109387006/epubprivate/OEBPS/Images/Figure-P101_78822.jpg?sign=1739114043-AuP7allEIFVJgbMNfrhOnzkwAnMd62pp-0-a6fafd16ae9b68cf9c762a118ecf22ba)
<scope>设置为provided表明该包只在编译和测试的时候用,因为当项目打包完部署到Servlet容器时,Servlet容器会提供Servlet API,因此无须将Servlet API打包到项目的WAR包中。
在项目中创建HelloServlet类,代码如下:
![](https://epubservercos.yuewen.com/A99FE4/23721413109387006/epubprivate/OEBPS/Images/Figure-P101_78823.jpg?sign=1739114043-O0K4HvuUX3pvPdtdlObradAYcJXaLEI8-0-c02240b11ec1ef53fb58c3881aa3dcb8)
HelloServlet类的逻辑非常简单,当客户端访问“/HelloServlet”URL时,会响应“Hello World!”字样的文本内容给客户端。
3.9.3 编译应用
执行“mvn package”来编译、打包应用。执行成功后,可以在应用的target目录下看到一个hello-servlet.war文件。该WAR包可以用来部署到Servlet容器中。
3.9.4 运行应用
将hello-servlet.war文件部署到Servlet容器中。比如,本例是部署到Tomcat中。Tomcat安装目录下的webapps默认是用来部署应用的,我们将hello-servlet.war文件放置到该目录下,如图3-2所示。
![](https://epubservercos.yuewen.com/A99FE4/23721413109387006/epubprivate/OEBPS/Images/Figure-P102_79845.jpg?sign=1739114043-RDDEmz5p4ehZ35tfekggW9odiHDCasFw-0-f26ad94bb646135cbf66320d6529be65)
图3-2 Tomcat部署应用的目录
Tomcat成功启动后,在浏览器中访问http://localhost:8080/hello-servlet/HelloServlet,可以看到如图3-3所示的响应内容。
![](https://epubservercos.yuewen.com/A99FE4/23721413109387006/epubprivate/OEBPS/Images/Figure-P102_6616.jpg?sign=1739114043-l0PhjkS7onZkJEc7IT5B9oZ0EiIQlKnU-0-4cf179705349b9b459bf07880b58f096)
图3-3 HelloServlet响应内容