- 1、掌握Servlet的结构和执行流程
- 2、掌握Servlet的生命周期
- 3、掌握Servlet在项目中的应用
- 4、使用MVC架构进行项目开发
一、servlet基础
- 1、servlet概述
servlet就是在服务器端运行的一个小程序。一个servlet就是一个java类,并且可以通过“请求-响应”编程模型来访问的这个驻留在服务器内存里的servlet程序。 - 2、Tomcat容器等级
Tomcat的容器分为四个等级,Servlet的容器管理Context容器,一个Context对应一个Web工程, 一个Context对应一个Web工程.
Tomcat - - Container容器 - - Engine 引擎容器 - - HOST 主机容器 - - Servlet容器 - - Context
- 3、手工编写servlet步骤:
- 1、集成httpServlet类
- 2、重写doGet和DoPost方法
- 3、在web.xml中注册
<servlet>
// 任意名字
<servlet-name>DemoServlet</servlet-name>
// 源码中包名 + 类
<servlet-class>com.imooc.servlet.Demo</servlet-class>
</servlet>
// 匹配url
<servlet-mapping>
// 和上面名字一致
<servlet-name>DemoServlet</servlet-name>
// 浏览器中访问路径
<url-pattern>/servlet/demo</url-pattern>
</servlet-mapping>
- 4、servlet生命周期
servlet生命周期阶段包括初始化、加载、实例化、服务和销毁。
- 1、首先调用构造方法初始化阶段,调用init方法
- 2、先判断该请求的servlet实例是否存在,如果不存在先装载一个servlet类并创建实例。如果存在则直接调用该servlet的service方法,之后进行判断是调用doGet方法还是doPost方法。
- 3、最后调用destroy方法结束。
5、servlet的装载三种情况:
1、自动装载:某些Servlet如果需要在Servlet容器启动时就加载,需要在web.xml下它的标签里中,添加优先级代码:
<Servlet>
<load-on-startup>1<load-on-startup>
</Servlet>
PS:数字越小表示该servlet的优先级越高,会先于其他自动装载的优先级较低的先装载.
* 2、Servlet容器启动后,客户首次向某个Servlet发送请求时,Tomcat容器会加载它
3、当Servlet类文件被更新后,也会重新自动加载
Servlet是长期驻留在内存里的。某个Servlet一旦被加载,就会长期存在于服务器的内存里,直到服务器关闭4、Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期内,init()方法只被调用一次
- 6、Servlet的路径跳转
一、JSP跳转到Servlet
相对路径:servlet/HelloServlet(当前资源的路径)
/servlet/HelloServlet 第一个/表示服务器的根目录
<!-- 使用绝对路径 访问HelloServlet,可以使用path变量:path变量表示项目的根目录-->
<a href="<%=path%>/servlet/HelloServlet">访问HelloServlet!</a><br>
<!--表单中action的URL地址写法,与超链接方式完全相同。 -->
String path=requser.getContextPath();(表示项目的根目录
二、Servlet跳转到JSP
//请求重定向方式跳转到test.jsp,当前路径是ServletPathDirection/servlet/
//response.sendRedirect("test.jsp");//报错
//使用request.getContextPath获得上下文对象
//response.sendRedirect(request.getContextPath()+"/test.jsp");
//服务器内部跳转,这里的“/”表示项目的根目录
//request.getRequestDispatcher("/test.jsp").forward(request, response);
//“..”返回上级目录
request.getRequestDispatcher("../test.jsp").forward(request, response);