Servlet
什么是Servlet
Servlet 是运行在Web服务器中的小型java程序,是Java提供的一门动态web资源开发技术。通常通过HTTP协议接收和响应来自于客户端的请求。
Servlet 是JavaEE规范之一,其实就是一个接口(定义Servlet需实现Servlet接口 或 继承HttpServlet) ,并由web服务器运行Servlet。

入门程序
**需求:**使用Servlet开发一个Web应用,浏览器发起请求 /hello 之后,给浏览器返回一个字符串 “Hello Xxx”。

步骤:
1). 准备:创建maven项目(设置打包方式为war),导入Servlet坐标(provided)
|
|
2). 定义一个类,实现Servlet接口(继承HttpServlet),并实现所有方法。在Servlet类上使用@WebServlet注解,配置该Servlet的访问路径。
|
|
3). 将开发好的Servlet部署在外部的Tomcat服务器中运行。
选择 Edit Configurations

选择 Tomcat Server

点击 Deployment
选择要部署的项目。

点击上方的小三角 ,启动Tomcat 服务。

启动完毕,会看到Tomcat输出的日志。

4). 打开浏览器,访问测试 http://localhost:9000/demo01/hello

注意事项
-
Servlet项目打包方式需要设置为 war。
1
<packaging>war</packaging>
-
servlet-api 依赖的作用范围
<scope>
必须设置为provided
。1
<scope>provided</scope>
执行流程
Servlet的入门程序我们都已经完成了,并将其部署到了Tomcat服务器中进行测试,可以正常访问到Servlet程序。 那接下来,我们就来研究一下Servlet的执行流程。
研究Servlet的执行流程,主要就是研究,我们在浏览器地址栏访问 http://localhost:8080/servlet-demo/hello?name=Tomcat
,是如何访问到我们的服务中部署的servlet-demo
这个应用的。
1). 定位服务器
通过url地址中的ip/主机 与 端口号 http://localhost:8080
,首先会定位到我们要访问的Web服务器。

而在一个web服务器中,是可以部署多个应用程序的。那我们具体要访问到那个项目呢 ? 接下来,我们再来看如何定位到要访问的应用程序的。
2). 定位项目
通过端口号之后的 servlet-demo
,就可以定位到Web服务器中部署的应用。

而我们知道在一个应用中呢,是可以有多个Servlet程序的,那如何定位到要访问的是哪一个Servlet呢 ?
3). 定位Servlet
那么通过请求路径中的最后一个部分 /hello
就可以知道我们要访问的Servlet程序是 HelloServlet
,因为 HelloServlet
的请求路径是 /hello
。

4). 执行Servlet
定位到Servlet程序后,那接下来,就会指定这个Servlet程序,那具体调用Servlet程序中的哪个方法呢 (doGet
或 doPost
) ?
由于我们再浏览器地址栏发起的请求,请求方式都是Get,所以Web服务器会自动调用Servlet的 doGet
方法。


- Servlet 对象是由谁创建的,Servlet的doGet方法是由谁调用的?
- Servlet对象由Web服务器(Tomcat)创建,Servlet方法由Web服务器(Tomcat)调用。
- HttpServletRequest:用于封装所有的请求数据。
- HttpServletResponse:用于封装所有的响应数据。