首页 技术 正文
技术 2022年11月20日
0 收藏 341 点赞 3,376 浏览 3074 个字

测试环境:windows xp旗舰版

软件环境:myclipse8.5+tomcat7.0

*********************************************************************************

操作方法:

1.新建工程;

File——>new——>Java Project——>TestServlet(工程名称)——>Finish.

2.加载servlet-api.jar类包;

TestServlet(右键)——>Build Path——>Configure Build Path——>Library

——>Add External JAR Selection——>(浏览在tomcat的lib目录下找到servlet-api.jar选中后点击打开)。——> OK

测试Servlet生命周期学习笔记

测试Servlet生命周期学习笔记

测试Servlet生命周期学习笔记

3.新建名为“TestlLifeCycleServlet”的class类。

测试Servlet生命周期学习笔记

测试Servlet生命周期学习笔记

4.重写doGet方法:

测试Servlet生命周期学习笔记

测试Servlet生命周期学习笔记

5.修改下重写方法的参数,以及方法并自己写一个构造方法:

测试Servlet生命周期学习笔记

6.重写TestlLifeCycleServlet的init(ServletConfig)方法,和重写doGet方法一致:

测试Servlet生命周期学习笔记

7.修改重写的TestlLifeCycleServlet的init(ServletConfig)方法中的参数和方法,

之后再重写TestlLifeCycleServlet的destroy()方法.

测试Servlet生命周期学习笔记

8.最后完成代码如下:

import java.io.IOException;import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class TestlLifeCycleServlet extends HttpServlet { //重写销毁方法
public void destroy() {
System.out.println("destroy"); } //重写初始化方法
public void init(ServletConfig config) throws ServletException {
System.out.println("init"); } //自己构造的方法
public TestlLifeCycleServlet(){
System.out.println("constructor!");
} //重写的doGet方法
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doGet!"); }}

注:现在要通过测试这四种方法的执行顺序,来间接测试Servlet生命周期。

9.部署servlet:

(1.)复制TestlLifeCycleServlet的class文件到D:\Program Files\apache-tomcat-7.0.54\webapps\test\WEB-INF\classes目录下。

(具体方法见测试Servlet学习笔记博文,这里略去。)

测试Servlet生命周期学习笔记

(2.)配置web.xml文件如下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<!--第一次的配置-->
<servlet>
<servlet-name>HW</servlet-name>
<servlet-class>HelloWorldServlet</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>HW</servlet-name>
<url-pattern>/ab</url-pattern>
</servlet-mapping>

<!--这一次的配置-->
<servlet>
<servlet-name>TestlLifeCycleServlet</servlet-name>
<servlet-class>TestlLifeCycleServlet</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>TestlLifeCycleServlet</servlet-name>
<url-pattern>/TestlLifeCycleServlet</url-pattern>
</servlet-mapping></web-app>

10.tomcat后台如果出现

Roleading Context withname [/test] is to completed

说明配置成功!

测试Servlet生命周期学习笔记

11.运行后结果如下:

三个方法调用顺序是先调用了自己构造的方法,其次是初始化方法,然后是doGet方法。destroy方法还没有被调用。

测试Servlet生命周期学习笔记

12.再次刷新页面,发现只重新调用了doGet方法。

测试Servlet生命周期学习笔记

13.书上说,destroy()在webapp退出的时候被调用

退出时观看后台,结果后台关闭太快,根本来不及看到。

注意:我的tomcat7.0,在目录D:\Program Files\apache-tomcat-7.0.54\bin下有批处理:

shutdownup.bat

测试Servlet生命周期学习笔记

14.因此先关闭tomcat服务,输入命令:shutdownup

测试Servlet生命周期学习笔记

然后输入命令:进入调试模式试试。

开始——>运行——>cmd——>catalina debug.

测试Servlet生命周期学习笔记

输入命令:run

测试Servlet生命周期学习笔记

15.重新访问页面,

测试Servlet生命周期学习笔记

输入命令?查看退出命令是什么。

测试Servlet生命周期学习笔记

退出命令是exit或者quit。

输入命令:quit。

测试Servlet生命周期学习笔记

不行,直接退出了,根本无法看到。

还有一种方法,将destroy方法修改成写一个文件记录下。

这种方法由于时间关系,先不尝试,有时间再尝试。

**************************************************************************

15.现在先总结下:

servlet的生命周期生命全过程:

1.加载:ClassLoader

2.实例化:new 新的对象,只调用一次,仅仅new一个对象

3.初始化:init(ServletConfig)

注释:该方法只执行一次,第一次初始化时被调用,ServletConfig内保存web.xml配置信息

4.处理请求: service doGet doPost5.退出服务:destroy()在webapp退出的时候被调用

*************************************************************************

交流即分享,分享才能进步!

博文中如有不当之处,欢迎各位前辈指出。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,951
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,477
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,290
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,107
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,739
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,773