J2EE简介之Servlet的生命周期

开发 后端
本文主要介绍J2EE标准中间件体系结构中的Servlet的生命周期。servlet是一种独立于操作系统平台和网络传输协议的服务器端的Java应用程序,它用于扩展服务器的功能,可以生成动态的web页面。

J2EE是一个标准中间件体系结构,目的在于简化和规范分布式多层企业应用系统的开发和部署.

典型的J2EE结构的应用程序有:客户层,表示逻辑层,业务逻辑层,企业信息系统层。

典型的J2EE结构的应用程序

 

servlet是一种独立于操作系统平台和网络传输协议的服务器端的Java应用程序,它用于扩展服务器的功能,可以生成动态的web页面。

servlet是一种独立于操作系统平台和网络传输协议的服务器端的Java应用程序

Servlet 的生命周期

Servlet 的生命周期始于将它装入 Web 服务器的内存时,并在终止或重新装入 Servlet 时结束。

(1) 初始化

在下列时刻装入 Servlet:

如果已配置自动装入选项,则在启动服务器时自动装入

在服务器启动后,客户机***向 Servlet 发出请求时

重新装入 Servlet 时装入 Servlet 后,服务器创建一个 Servlet 实例并且调用 Servlet 的 init() 方法。在初始化阶段,Servlet 初始化参数被传递给 Servlet 配置对象。

(2) 请求处理

对于到达服务器的客户机请求,服务器创建特定于请求的一个“请求”对象和一个“响应”对象。服务器调用 Servlet 的 service() 方法,该方法用于传递“请求”和“响应”对象。service() 方法从“请求”对象获得请求信息、处理该请求并用“响应”对象的方法以将响应传回客户机。service() 方法可以调用其它方法来处理请求,例如 doGet()、doPost() 或其它的方法。

(3) 终止

当服务器不再需要 Servlet, 或重新装入 Servlet 的新实例时,服务器会调用 Servlet 的 destroy() 方法。

一个servlet样例(ServletSample.java)如下:

  1. import java.io.*;  
  2. import java.util.*;  
  3. import javax.servlet.*;  
  4. import javax.servlet.http.*;   
  5.  
  6. public class ServletSample extends HttpServlet { // ***步: 扩展 HttpServlet 抽象类。  
  7.  
  8. public void doGet (HttpServletRequest request, HttpServletResponse response)   
  9. throws ServletException, IOException { // 第二步:重写doGet()方法  
  10.  
  11. String myName = ""// 第三步:获取HTTP 请求信息  
  12. java.util.Enumeration keys = request.getParameterNames();  
  13. while (keys.hasMoreElements());  
  14. {  
  15. key = (String) keys.nextElement();  
  16. if (key.equalsIgnoreCase("myName"))  
  17. myName = request.getParameter(key);   
  18. }  
  19. if (myName == "")  
  20. myName = "Hello";  
  21. // 第四步:生成 HTTP 响应。  
  22. response.setContentType("text/html");   
  23. response.setHeader("Pragma""No-cache");  
  24. response.setDateHeader("Expires"0);  
  25. response.setHeader("Cache-Control""no-cache");  
  26.  
  27. out.println("");  
  28. out.println("");  
  29. out.println("   
  30.  
  31. Just a basic servlet  
  32. ");  
  33. out.println ("   
  34. " + myName + "this is a very basic servlet that writes an HTML  
  35.  page.");  
  36. out.println ("   
  37.  
  38. For instructions on running those samples on your WebSphere应用服务器, "+  
  39. "open the page:");  
  40. out.println("  
  41.  
  42. http://your.server.name/IBMWebAs/samples/index.aspl  
  43. ");  
  44. out.println("where your.server.name is the hostname of your WebSphere应用服  
  45. 务器.");   
  46. out.println("");   
  47. out.flush();   
  48. }  
  49. }   
  50.  

Cookie的格式实际上是一段纯文本信息, 由服务器随着网页一起发送到客户端, 并保存在客户端硬盘中指定的目录的.

一个简单的例子
1. 写入Cookie --- writecookie.jsp
-------------------------------------------------------------

  1. <%@ page contentType="text/html; charset=ISO8859_1" %> 
  2. <%  
  3. Cookie _cookie=new Cookie("user_delfancom", "delfan");  
  4. _cookie.setMaxAge(30*60); // 设置Cookie的存活时间为30分钟  
  5. response.addCookie(_cookie); // 写入客户端硬盘  
  6. out.print("写Cookie完成");  
  7. > 

2. 读取Cookie.jsp --- readcookie.jsp
-------------------------------------------------------------

  1. <%  
  2. Cookie cookies[]=request.getCookies(); // 将适用目录下所有Cookie读入并存入cookies数组中  
  3. Cookie sCookie=null;  
  4. String sname=null;  
  5. String name=null;  
  6. if(cookies==null) // 如果没有任何cookie   
  7. out.print("none any cookie");  
  8. else  
  9. {  
  10.  out.print(cookies.length + "  
  11. ");  
  12.  for(int i=0;i{   
  13. sCookie=cookies[i];  
  14. sname=sCookie.getName();  
  15. name = sCookie.getValue();   
  16. out.println(sname + "->" + name + "  
  17. ");  
  18.  }  
  19. }  
  20. > 

以上介绍了Servlet的生命周期。

【编辑推荐】

  1. J2EE开发框架发展简史续
  2. 为什么J2EE如此低效--用户无法参与开发
  3. J2EE应用服务器的现状与发展趋势
  4. J2EE、J2SE、J2ME是什么意思?
  5. J2EE的核心技术之JDBC简介篇 
责任编辑:book05 来源: csdn
相关推荐

2009-06-11 17:13:44

J2EE设计模式Dao设计模式

2009-06-19 16:38:45

JDBC简介J2EE

2009-06-10 14:10:23

J2EE学习J2EE是什么

2009-06-10 13:37:06

J2EE可伸缩性J2EE灵活性J2EE维护

2009-06-11 17:19:47

J2EE设计模式Template

2009-06-23 08:06:46

J2EE体系架构J2EE模型J2EE设计模式

2009-06-23 16:48:26

J2EE常见问题J2EE平台

2009-06-11 17:06:11

J2EE历史Java EE概述

2009-06-11 17:23:09

J2EE设计模式State模式

2009-06-11 17:11:07

J2EE设计模式工厂模式

2009-06-22 17:34:40

J2EE架构

2009-06-18 15:54:57

J2EE下使用JNDI

2009-06-23 08:12:48

J2EE调用存储过程

2009-06-22 17:05:41

Java EEJava企业应用

2009-06-10 13:30:32

J2EE四层模型客户层Web层

2009-06-22 16:21:02

J2EE线程

2009-06-18 16:13:14

J2EE开发

2009-06-16 15:56:10

MIDlet生命周期J2ME程序测试

2011-11-25 14:59:36

JavaJ2EE框架

2009-06-22 17:09:00

J2EE项目开发流程
点赞
收藏

51CTO技术栈公众号