![轻量级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=1739317033-g9kAgIWWEigfiayZWMmFWApbJy6lKpJQ-0-8a9519bd435775447673c98893a44548)
创建完成之后,能够看到如下的项目结构:
![](https://epubservercos.yuewen.com/A99FE4/23721413109387006/epubprivate/OEBPS/Images/Figure-P100_78821.jpg?sign=1739317033-NZ1vOxw8cUtPB6vLLeAa5c73JK1YNHJa-0-a90531bb36390f56a48d1ba24283d151)
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=1739317033-9ubpQAjk8wvrdLcShU0YCl3FPOkyxEh1-0-41241acb086860a4988b8f6954b4de58)
<scope>设置为provided表明该包只在编译和测试的时候用,因为当项目打包完部署到Servlet容器时,Servlet容器会提供Servlet API,因此无须将Servlet API打包到项目的WAR包中。
在项目中创建HelloServlet类,代码如下:
![](https://epubservercos.yuewen.com/A99FE4/23721413109387006/epubprivate/OEBPS/Images/Figure-P101_78823.jpg?sign=1739317033-tLG8e7cI3tnovi1c9VY5WI1YX42kKmfP-0-b90bd1854e967dbb9942d3c55f695fa9)
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=1739317033-qNh9wnTSnNn2ZJTUAjDZ67uSJDJblA7C-0-161243dbcac561cbe0c3f33c536bd54c)
图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=1739317033-f7RXPpVNqkFLNLAR2DAYH2b5YmgGcfG7-0-b9c9d189d703fec30417d195d3df4bb7)
图3-3 HelloServlet响应内容