【JavaEE】Servlet(创建Maven、引入依赖、创建目录、编写及打包、部署和验证、smart Tomcat)

一、什么是Servlet?

Servlet 是一种实现动态页面的技术. 是一组 Tomcat 提供给程序猿的 API, 帮助程序猿简单高效的开发一个 web app

1.1 Servlet能干什么?

  • 🚕允许程序猿注册一个类, 在 Tomcat 收到某个特定的 HTTP 请求的时候, 执行这个类中的一些代码
  • 🚕帮助程序猿解析 HTTP 请求, 把 HTTP 请求从一个字符串解析成一个 HttpRequest 对象.
  • 🚕帮助程序猿构造 HTTP 响应. 程序猿只要给指定的 HttpResponse 对象填写一些属性字段, Servlet
  • 🚕就会自动的安装 HTTP 协议的方式构造出一个 HTTP 响应字符串, 并通过 Socket 写回给客户端

二、第一个Servlet程序

2.1 创建项目(Maven)

使用 IDEA 创建一个 Maven 项目
在这里插入图片描述

2.2 引入依赖(Servlet)

pom.xml 中引入 Servlet API 依赖的 jar 包:

🚓在中央仓库 https://mvnrepository.com/ 中搜索 “servlet”, 一般第一个结果就是
🚓选择匹配的版本(可以在 http://tomcat.apache.org/whichversion.html 查询版本对应关系)
🚓把中央仓库中提供的 xml 复制到项目的 pom.xml 中
在这里插入图片描述
在这里插入图片描述

2.3 创建目录(webapp)

在 main 目录下, 和 java 目录并列, 创建一个 webapp 目录
在这里插入图片描述
在 webapp 目录内部创建一个 WEB-INF 目录, 并创建一个 web.xml 文件
在这里插入图片描述
在web.xml中拷入以下代码
在这里插入图片描述

2.4 编写代码(HelloServlet)

在 java 目录中创建一个类 HelloServlet, 代码如下:

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("Hello world");
        resp.getWriter().write("Hello world");
    }
}

🚓在这个类上方加上 @WebServlet("/hello") 注解, 表示 Tomcat 收到的请求中, 路径为 /hello 的请求才会调用 HelloServlet 这个类的代码. (这个路径未包含 Context Path)

🚓重写 doGet 方法. doGet 的参数有两个, 分别表示收到的 HTTP 请求 和要构造的 HTTP 响应. 这个方法会在 Tomcat 收到 GET 请求时触发

🚓HttpServletRequest 表示 HTTP 请求. Tomcat 按照 HTTP 请求的格式把 字符串 格式的请求转成了一个 HttpServletRequest 对象. 后续想获取请求中的信息(方法, url, header, body 等) 都是通过这个对象来获取.

🚓HttpServletResponse 表示 HTTP 响应. 代码中把响应对象构造好(构造响应的状态码, header, body 等)

🚓resp.getWriter() 会获取到一个流对象, 通过这个流对象就可以写入一些数据, 写入的数据会被构造成一个 HTTP 响应的 body 部分, Tomcat 会把整个响应转成字符串, 通过 socket 写回给浏览器

2.5 打包代码(war)

首先知道什么是war包: war 包是 java web 的程序, 里面除了会包含 .class 文件之外, 还会包含 HTML, CSS, JavaScript, 图片, 以及其他的 jar 包. 打成 war 包格式才能被 Tomcat 识别

在 pom.xml 中新增一个 packing 标签, 表示打包的方式是打一个 war 包,再新增一个 build 标签, 内置一个 finalName 标签, 表示打出的 war 包的名字是 HelloServlet
在这里插入图片描述
双击package
在这里插入图片描述
成功打包:
在这里插入图片描述

2.6 部署

把打包好的war包拷贝到tomcat的webapps目录中
在这里插入图片描述
启动 Tomcat , Tomcat 就会自动把 war 包解压缩
在这里插入图片描述
看到这个日志说明 Tomcat 已经正确识别了 ServletHelloWorld 这个 webapp

2.7 验证程序

通过浏览器访问 http://127.0.0.1:8080/hello_servlet/hello

在这里插入图片描述
注意:
🚙不是tomcat一启动,我们写的doGet就能执行,而是要收到路径匹配的GET请求才能执行!!
🚙URL 中的路径分成两个部分, 其中hello_servlet 为 Context Path,标识了一个webapp, hello 为 Servlet Path,标识当前请求要调用哪个Servlet类的doGet方法

三、更便捷的部署方式

手动拷贝 war 包到 Tomcat 的过程比较麻烦. 我们还有更方便的办法.
此处我们使用 IDEA 中的 Smart Tomcat 插件完成这个工作
下载smart Tomcat
在这里插入图片描述
配置 Smart Tomcat 插件
在这里插入图片描述
在这里插入图片描述
点击运行:
在这里插入图片描述
idea下方显示tomcat的日志
在这里插入图片描述

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值