目录
1.什么是Servlet
2.servlet程序
2.1 创建项目
2.2 引入依赖
2.3 创建目录
2.4 编写代码
2.5 打包程序
2.6 部署程序
2.7 验证程序
3.更简单的部署方法
3.1 安装
3.2配置
4.访问出错怎么办
4.1 404
4.2 405
4.3 500
4.4 空白页面
4.5 无法访问此页面
5.servlet工作模式
6.Servlet调用过程
1.什么是Servlet
Servlet 是一种实现动态页面的技术. 是一组 Tomcat 提供给程序猿的 API, 帮助程序猿简单高效的开发一个 web app.
2.servlet程序
2.1 创建项目
2.2 引入依赖
<dependencies>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
2.3 创建目录
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>
2.4 编写代码
@WebServlet("/hello")//Tomcat类调用HelloServlet类处理
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//要删掉,不能调用父类的doGet
//super.doGet(req, resp);
//服务器在控制台打印
System.out.println("hello world!");
//页面打印:把hello world字符串,放到http响应的body中
resp.getWriter().write("hello");
//resp是响应对象,getWriter()返回一个writer对象,write是真正干活的
}
}
1.重写父类方法
do:处理 Get:http的get方法 回调函数
HttpServletRequest :代表一个http请求 Tomcat已经收到,已经解析成对象
HttpServletResponse:代表一个HTTP响应 resp是一个空的响应对象,要在代码中给对象设置一些属性
doGet方法要做的工作,就是根据请求,计算响应
2.步骤:
1.接收请求并解析
2.根据请求计算响应
3.构造响应数据,并返回给客户端
1.3tomcat完成,2要编写
@WebServlet("/hello")是第二路径
2.5 打包程序
没有main不能单独运行,要打包部署到Tomcat上,由Tomcat来调用
在pom.xml中编写
<!-- 打的包是war包,不写默认是jar包-->
<packaging>war</packaging>
<!-- 指定打出的war名字-->
<build>
<finalName>hello1</finalName>
</build>
双击
打包成功
2.6 部署程序
war包拷贝到tomcat的webapps目录下
打开tomcat
会把war包解压
2.7 验证程序
通过浏览器访问
127.0.0.1:8080/hello1/hello
hello1是Context Path 第一级路径是hello1,war包是hello1
hello是Servlet Path 和注解匹配
一个Tomcat可以同时部署多个网站,一个网站有多个页面,一个请求中第一级路径,就是告诉Tomcat要访问的是哪个网站,第二级路径是告诉Tomcat,要访问的页面是哪个
如果要修改代码:
七个步骤中,前三个不用重复
不一定要重启tomcat(理论不用重启,windows可能会有问题)
3.更简单的部署方法
通过idea插件
3.1 安装
3.2配置
点击会完成打包部署,重启tomcat
成功
4.访问出错怎么办
4.1 404
访问资源不存在
1.原因:
- URL 的路径写的不正确
- 路径正确,服务器没有把正确把资源加载出来
2.典型例子:
1.少写第一级路径,context path
2.少写第二级路径,servlet path
3.Servlet Path 写的和 URL 不匹配==>修改 @WebServlet 注解的路径
4.web.xml没有写正确
tomcat发现目录中有web.xml且内容正确,才能加载webapp
4.2 405
HTTP请求方法没有实现
1.没有实现 doGet 方法, 就会出现上述现象
在浏览器地址栏直接输入 URL , 会发送一个 HTTP GET 请求.
此时就会根据 路径找到类. 并且尝试调用HelloServlet 的 doGet 方法.
2.如果没有屏蔽掉父类
4.3 500.4 4 空白页面
不给响应对象设置任何内容,就会出现空白页面
4.5 无法访问此页面
tomcat没有正常启动
5.servlet工作模式
- 客户端发送请求到服务器
- 服务器启动并调用servlet,Servlet根据客户端的请求生成响应内容并传给服务器
- 服务器把响应返回给客户端
6.Servlet调用过程
1.通过请求头得到是哪个主机
生命周期:
- servlet被第一次访问时创建,会立即调用init方法进行初始化操作
- 此后会一直留在服务器中,只要有请求访问就会调用service方法
- 直到服务器关闭或web应用程序被移除,servlet实例会被销毁,销毁前服务器会调用destroy( )方法进行处理