Servlet学习基础
Servlet的定义:
Servlet是在服务器端运行的小程序。一个Servlet就是一个Java类,并且可以通过“请求-响应”编程模型来访问的这个驻留在服务器内存里的Servlet程序。
Tomcat容器等级
Tomcat的容器等级分为四个等级,Servlet的容器管理Context容器,一个Context对应一个Web工程。
手工编写第一个Servlet
1. 继承HTTPServlet
2. 重写doGet()或者doPost()方法
3. 在web.xml中注册Servlet
Servlet生命周期
1. 初始化阶段,调用init()方法。
2. 响应客户请求阶段,调用service()方法。由service()方法根据提交方式选择执行doGet()或者doPost()方法。
3. 终止阶段,调用destroy()方法。
在下列时刻Servlet容器装在Servlet:
1. Servlet容器启动时自动装在某些Servlet,实现它只需要在web.xml文件中的<servlet></servlet>之间添加如下代码:<loadon-startup>1</loadon-startup>,数字越小表示优先级别越高。
2. 在Servlet容器启动后,客户端首次向Servlet发送请求。
3. Servlet类文件在被更新后,重新装载Servlet。
注意:Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期内,init()方法只被调用一次。
Servlet与九大内置对象
Servlet跳转路径
l <!--使用相对路径访问HelloServlet -->
<!-- /servlet/HelloServlet 第一个/表示服务器的根目录 -->
<a href="servlet/HelloServlet">访问HelloServlet!</a><br>
l <!-- 使用绝对路径 访问HelloServlet,可以使用path变量:path变量表示项目的根目录-->
<a href="<%=path%>/servlet/HelloServlet">访问HelloServlet!</a><br>
l <!--表单中action的URL地址写法,与超链接方式完全相同。 -->
<a href="servlet/TestServlet">访问TestServlet,跳转到Test.jsp</a>
l <!--url-pattern处必须以/开头,这里的/表示项目的根目录 -->
<url-pattern>/servlet/HelloServlet</url-pattern>
l //请求重定向方式跳转到test.jsp,当前路径是ServletPathDirection/servlet/
//response.sendRedirect("test.jsp");
l //使用request.getContextPath获得上下文对象
//response.sendRedirect(request.getContextPath()+"/test.jsp");
l //服务器内部跳转,这里的斜线表示项目的根目录
//request.getRequestDispatcher("/test.jsp").forward(request, response);
request.getRequestDispatcher("../test.jsp").forward(request, response);