Servlets 的生命周期
Servlets 可以通过以下方式对重大事件做出反应:
-
它可以自己“初始化”。
-
它可以开始运行。
-
它可以停止运行。
-
它可以执行final清理,以准备卸载。
本节介绍了使用所有这些方法的新 ServletsSimple
。与 Java 应用程序不同,小应用程序无需实现main
方法。
这是Simple
Servlets。
A browser with JavaScript enabled is required for this page to operate properly\.
Note:
如果看不到示例正在运行,则可能需要在浏览器中启用 JavaScript 解释器,以便 Deployment Toolkit 脚本能够正常运行。
以下是Simple
Servlets 的源代码。每当该 applet 遇到其生命中的重要里程碑时,例如当用户首次访问该 applet 所在的页面时,它将显示一个描述性字符串。
import java.applet.Applet;
import java.awt.Graphics;
//No need to extend JApplet, since we don't add any components;
//we just paint.
public class Simple extends Applet {
StringBuffer buffer;
public void init() {
buffer = new StringBuffer();
addItem("initializing... ");
}
public void start() {
addItem("starting... ");
}
public void stop() {
addItem("stopping... ");
}
public void destroy() {
addItem("preparing for unloading...");
}
private void addItem(String newWord) {
System.out.println(newWord);
buffer.append(newWord);
repaint();
}
public void paint(Graphics g) {
//Draw a Rectangle around the applet's display area.
g.drawRect(0, 0,
getWidth() - 1,
getHeight() - 1);
//Draw the current string inside the rectangle.
g.drawString(buffer.toString(), 5, 15);
}
}
Note:
在此示例中,扩展了Applet
类,而不扩展了 Swing JApplet
类,因为不需要将 Swing 组件添加到此 applet。
加载 Servlets
由于加载了 applet,您应该看到文本“正在初始化...正在启动...”。加载 Servlets 后,将发生以下情况:
-
Servlets 的控制类(
Applet
子类)的实例已创建。 -
Servlets 将初始化自己。
-
Servlets 开始运行。
离开并返回 Servlets 页面
例如,当用户离开该页面转到另一个页面时,浏览器将停止并破坏该 applet。Servlets 的状态未保留。当用户返回页面时,浏览器将初始化并启动该 applet 的新实例。
重新加载 Servlets
当刷新或重新加载浏览器页面时,Applet 的当前实例将停止并销毁,并创建一个新实例。
退出浏览器
当用户退出浏览器时,Servlets 将有机会自行停止并在浏览器退出之前执行final清除。
下载源代码用于“简单 Servlets”示例,以进一步进行实验。