目录
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调用过程
Servlet 是一种实现动态页面的技术. 是一组 Tomcat 提供给程序猿的 API, 帮助程序猿简单高效的开发一个 web app.
javax.servlet
javax.servlet-api
3.1.0
provided
web.xml中代码
Archetype Created Web Application
@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")是第二路径
没有main不能单独运行,要打包部署到Tomcat上,由Tomcat来调用
在pom.xml中编写
war
hello1
双击
打包成功
war包拷贝到tomcat的webapps目录下
打开tomcat
会把war包解压
通过浏览器访问
127.0.0.1:8080/hello1/hello
hello1是Context Path 第一级路径是hello1,war包是hello1
hello是Servlet Path 和注解匹配
一个Tomcat可以同时部署多个网站,一个网站有多个页面,一个请求中第一级路径,就是告诉Tomcat要访问的是哪个网站,第二级路径是告诉Tomcat,要访问的页面是哪个
如果要修改代码:
七个步骤中,前三个不用重复
不一定要重启tomcat(理论不用重启,windows可能会有问题)
通过idea插件
点击会完成打包部署,重启tomcat
成功
访问资源不存在
1.少写第一级路径,context path
2.少写第二级路径,servlet path
3.Servlet Path 写的和 URL 不匹配==>修改 @WebServlet 注解的路径
4.web.xml没有写正确
tomcat发现目录中有web.xml且内容正确,才能加载webapp
HTTP请求方法没有实现
1.没有实现 doGet 方法, 就会出现上述现象
在浏览器地址栏直接输入 URL , 会发送一个 HTTP GET 请求.
此时就会根据 路径找到类. 并且尝试调用HelloServlet 的 doGet 方法.
2.如果没有屏蔽掉父类
不给响应对象设置任何内容,就会出现空白页面
tomcat没有正常启动
1.通过请求头得到是哪个主机
生命周期: