- 浏览: 341350 次
- 性别:
- 来自: 广州
文章分类
最新评论
一:Servlet简介 <br>
Servlet的最广泛用途是建造动态的网页,没有Servlet或相应的动态技术(如CGI,ASP,JSP),一个Web服务器只能提供静态的网页,不能针对用户的请求提供相应的服务器端的操作,如查询数据库并根据查询结果构造一个新的结果网页等.所有的Servlet必须遵循Java Servlet API,这个API是由两个库包及一系列类组成的: <br>
javax.servlet:这个库包提供了普通Servlet模型 <br>
javax.servlet.http:这个库包提供了http和https的Servlet模式 <br>
普通的Servlet模型只是假定协议是建立在TCP/IP之上的,并没有对请求-回答(request-response)的协议(protocol)作出任何具体的假设,所有与http和https有关的逻辑均在javax .servlet.http库里面,这种办法可以最大程度上把可能发生变化的部分与一般逻辑分开。 <br>
<br>
二:Servlet的主要类 <br>
servlet库中有三个类提供了主要的Servlet技术的架构,这三个类是:Servlet接口,GenericServlet类和HttpServlet类: <br>
(A)Servlet接口声明了三个方法,init(),destroy()和service()方法,这三个方法决定了Servlet的生命周期 <br>
(B)GenericServlet是一个抽象类,它提供了Servlet接口的默认实现,但是却留下一个service()方法,这个方法仍然是一个抽象方法,任何个体的Servlet类均必须提供service()方法,以便提供必要的具体行为. <br>
(C)HttpServlet类继承自GenericServlet,虽然它本身也是一个抽象类,但是它为所有行为包括service和七个do方法都提供了默认的实现:doGet,doHead,doPost,doPut,doDelete,doOption,doTrace,这七个do方法基本涵盖了http协议的各种请求的种类. <br>
<br>
三:HttpServlet的生命周期 <br>
Servlet的生命周期描述一个Servlet如何被加载和被初始化,它是怎么样接收请求,响应请求以提供服务,java的HttpServlet类必须在一个Servlet引擎所提供的容器环境里面运行,因此,它的生命周期是由容器环境管理的. <br>
Servlet生命周期由接口javax.servlet.Servlet所定义,所有的Servlet必须实现它才能在Servlet容器环境里面运行.它的生命周其大概如下: <br>
(A)加载:Servlet容器可以同时创建一个或多个Servlet实例,这个过程可以在Servlet容器加载Servlet类时执行,或者在Servlet对象响应请求时执行,也可以在两者之间的任何时候执行. <br>
(B)初始化:Servlet容器调用一个init()方法将此Servlet初始化,初始化时,Servlet对象可以从数据库中读取初始数据,建立Connection,或者建立对其他有价值的资源的引用. <br>
(C)就绪:Servlet被初始化后,处于能响应请求的就绪状态,当客户端有一个请求时,Servlet容器将SevletRequest和ServletResponse对象都转发给Servlet,这两个对象以参数的形式传给service方法,这样,service方法会进一步调用doGet和doPost等方法处理相应的http处理请求 <br>
(D)释放:调用destroy()方法,系统将释放相应的资源,所有失去引用的Java对象都会被垃圾收集器收集. <br>
<br>
<br>
四:模板方法模式的使用 <br>
Servlet在几个地方法采用了模板方法模式的设计 <br>
(A)service()方法是一个模板方法,这个方法调用了七个do方法中的一个或几个,完成对客户端的请求,下面是示意源码: <br>
protexted void service(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{ <br>
String method = req.getMethod(); <br>
if(method.equals("GET")){ <br>
<br>
}else if(method.equals("POST")){ <br>
} <br>
...... <br>
} <br>
当然,这个service方法可以被子类置换掉. <br>
<br>
五:观察者模式的应用 <br>
Servlet引擎的事件可以分成Servlet环境事件和Session事件两种,通过Servlet引擎的事件机制可以做如下的工作: <br>
(A)管理数据库的各种资源的使用和释放 <br>
(B)建立计数机制 <br>
(C)监视Http Session的状态及属性 <br>
Servlet引擎的事件机制与AWT和Swing库中的事件模型是一样的事件委派模型。 <br>
(1)Servlet环境事件 <br>
当Servlet环境被创建,关闭,或者一个属性被加入到环境里,一个已经在环境里的属性被删除或修改时,都会产生Servlet事件: <br>
事件类型接口方法 <br>
servlet环境被创建javax.servlet.ServletContextListener contextInitialized <br>
Servlet环境被关闭javax.servlet.ServletContextListener contextDestroyed <br>
........................ <br>
(2)Session的事件 <br>
当Session被激活,钝化,或者一个属性被加入到Session对象里,一个已经在Session里的属性被删除或者修改时,都会产生Session事件,下面的表给出了Session事件的清单,每一个事件对应的事件监听器(listener)接口,以及所对应的方法: <br>
事件类型接口方法 <br>
一个session被激活javax.servlet.http.HttpSessionListener sessionCreated <br>
一个session被钝化javax.servlet.http.HttPSessionListener sessionDestroyed <br>
一个属性被加入javax.servlet.http.HttpSessionAttributesListener attributeAdded <br>
............................ <br>
要对某一个事件做出响应,就要准备一个谓的监听器,这个类实际上扮演的就是观察者模式的角色,那么怎么才能准备一监听器类呢? <br>
(1)针对某个事件的监听类必须实现所对应的事件接口 <br>
(2)一个监听器类必须有一个公开的默认构造子 <br>
(3)必须实现监听器接口所要求的方法 <br>
下面分为Servlet环境的舰艇器和Session属性监听器 <br>
Servlet的最广泛用途是建造动态的网页,没有Servlet或相应的动态技术(如CGI,ASP,JSP),一个Web服务器只能提供静态的网页,不能针对用户的请求提供相应的服务器端的操作,如查询数据库并根据查询结果构造一个新的结果网页等.所有的Servlet必须遵循Java Servlet API,这个API是由两个库包及一系列类组成的: <br>
javax.servlet:这个库包提供了普通Servlet模型 <br>
javax.servlet.http:这个库包提供了http和https的Servlet模式 <br>
普通的Servlet模型只是假定协议是建立在TCP/IP之上的,并没有对请求-回答(request-response)的协议(protocol)作出任何具体的假设,所有与http和https有关的逻辑均在javax .servlet.http库里面,这种办法可以最大程度上把可能发生变化的部分与一般逻辑分开。 <br>
<br>
二:Servlet的主要类 <br>
servlet库中有三个类提供了主要的Servlet技术的架构,这三个类是:Servlet接口,GenericServlet类和HttpServlet类: <br>
(A)Servlet接口声明了三个方法,init(),destroy()和service()方法,这三个方法决定了Servlet的生命周期 <br>
(B)GenericServlet是一个抽象类,它提供了Servlet接口的默认实现,但是却留下一个service()方法,这个方法仍然是一个抽象方法,任何个体的Servlet类均必须提供service()方法,以便提供必要的具体行为. <br>
(C)HttpServlet类继承自GenericServlet,虽然它本身也是一个抽象类,但是它为所有行为包括service和七个do方法都提供了默认的实现:doGet,doHead,doPost,doPut,doDelete,doOption,doTrace,这七个do方法基本涵盖了http协议的各种请求的种类. <br>
<br>
三:HttpServlet的生命周期 <br>
Servlet的生命周期描述一个Servlet如何被加载和被初始化,它是怎么样接收请求,响应请求以提供服务,java的HttpServlet类必须在一个Servlet引擎所提供的容器环境里面运行,因此,它的生命周期是由容器环境管理的. <br>
Servlet生命周期由接口javax.servlet.Servlet所定义,所有的Servlet必须实现它才能在Servlet容器环境里面运行.它的生命周其大概如下: <br>
(A)加载:Servlet容器可以同时创建一个或多个Servlet实例,这个过程可以在Servlet容器加载Servlet类时执行,或者在Servlet对象响应请求时执行,也可以在两者之间的任何时候执行. <br>
(B)初始化:Servlet容器调用一个init()方法将此Servlet初始化,初始化时,Servlet对象可以从数据库中读取初始数据,建立Connection,或者建立对其他有价值的资源的引用. <br>
(C)就绪:Servlet被初始化后,处于能响应请求的就绪状态,当客户端有一个请求时,Servlet容器将SevletRequest和ServletResponse对象都转发给Servlet,这两个对象以参数的形式传给service方法,这样,service方法会进一步调用doGet和doPost等方法处理相应的http处理请求 <br>
(D)释放:调用destroy()方法,系统将释放相应的资源,所有失去引用的Java对象都会被垃圾收集器收集. <br>
<br>
<br>
四:模板方法模式的使用 <br>
Servlet在几个地方法采用了模板方法模式的设计 <br>
(A)service()方法是一个模板方法,这个方法调用了七个do方法中的一个或几个,完成对客户端的请求,下面是示意源码: <br>
protexted void service(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{ <br>
String method = req.getMethod(); <br>
if(method.equals("GET")){ <br>
<br>
}else if(method.equals("POST")){ <br>
} <br>
...... <br>
} <br>
当然,这个service方法可以被子类置换掉. <br>
<br>
五:观察者模式的应用 <br>
Servlet引擎的事件可以分成Servlet环境事件和Session事件两种,通过Servlet引擎的事件机制可以做如下的工作: <br>
(A)管理数据库的各种资源的使用和释放 <br>
(B)建立计数机制 <br>
(C)监视Http Session的状态及属性 <br>
Servlet引擎的事件机制与AWT和Swing库中的事件模型是一样的事件委派模型。 <br>
(1)Servlet环境事件 <br>
当Servlet环境被创建,关闭,或者一个属性被加入到环境里,一个已经在环境里的属性被删除或修改时,都会产生Servlet事件: <br>
事件类型接口方法 <br>
servlet环境被创建javax.servlet.ServletContextListener contextInitialized <br>
Servlet环境被关闭javax.servlet.ServletContextListener contextDestroyed <br>
........................ <br>
(2)Session的事件 <br>
当Session被激活,钝化,或者一个属性被加入到Session对象里,一个已经在Session里的属性被删除或者修改时,都会产生Session事件,下面的表给出了Session事件的清单,每一个事件对应的事件监听器(listener)接口,以及所对应的方法: <br>
事件类型接口方法 <br>
一个session被激活javax.servlet.http.HttpSessionListener sessionCreated <br>
一个session被钝化javax.servlet.http.HttPSessionListener sessionDestroyed <br>
一个属性被加入javax.servlet.http.HttpSessionAttributesListener attributeAdded <br>
............................ <br>
要对某一个事件做出响应,就要准备一个谓的监听器,这个类实际上扮演的就是观察者模式的角色,那么怎么才能准备一监听器类呢? <br>
(1)针对某个事件的监听类必须实现所对应的事件接口 <br>
(2)一个监听器类必须有一个公开的默认构造子 <br>
(3)必须实现监听器接口所要求的方法 <br>
下面分为Servlet环境的舰艇器和Session属性监听器 <br>
import javax.servlet.*; <br> <br> public final class myListener implements ServletContextListener <br> { <br> /** This method is called when the servlet context is <br> * initialized(when the Web Application is deployed). <br> * You can initialize servlet context related data here. <br> */ <br> public void contextInitialized(ServletContextEvent event) <br> { <br> //write your code here <br> } <br> <br> /** This method is invoked when the Servlet Context <br> * (the Web Application) is undeployed or <br> * WebLogic Server shuts down. <br> */ <br> public void contextDestroyed(ServletContextEvent event) <br> { <br> //write your code here <br> } <br> } <br> <br> import javax.servlet.*; <br> import javax.servlet.http.HttpSessionAttributeListener; <br> import javax.servlet.http.HttpSessionBindingEvent; <br> <br> public final class myListener implements HttpSessionAttributeListener <br> { <br> <br> /** This method is called when an attribute <br> *﹛is added to a session. <br> */ <br> public void attributeAdded(HttpSessionBindingEvent sbe) <br> { <br> } <br> <br> /** This method is called when an attribute <br> * is removed from a session. <br> */ <br> public void attributeRemoved(HttpSessionBindingEvent sbe) <br> { <br> } <br> <br> /** This method is invoked when an attibute <br> * is replaced in a session. <br> */ <br> public void attributeReplaced(HttpSessionBindingEvent sbe) <br> { <br> } <br> } <br>
发表评论
-
Mina重连
2014-05-26 21:29 2927import com.sun.swing.internal. ... -
面试经典
2014-05-24 09:29 6431.mysql innodb引擎,什么叫聚集索引,与非聚集索 ... -
一拍网网站系统架构图
2014-03-28 21:24 623一拍网网站系统架构图 -
Window下安装配置nginx
2013-08-12 16:53 809安装:http://www.cnblogs.com/wen ... -
使用线程池的好处
2013-07-18 14:41 1252使用线程池有两个好处: 1.可以创建和销毁线程所带来的系统 ... -
Java ThreadLocal使用浅析
2013-07-18 14:36 483ThreadLocal通过在其内部保存变量的副本,并且各个副本 ... -
MyBatis学习之简单增删改查操作、MyBatis存储过程、MyBatis分页、MyBatis一对一、MyBatis一对多
2013-07-05 13:06 1177http://blog.csdn.net/zhangwei ... -
分享一位网友的架构杂谈
2013-05-20 23:16 913不容类型的网站,并发处理不一样,例如针对sns这种类型的网站 ... -
JSP页面静态化
2013-04-08 09:20 890http://www.java-zone.org/644.ht ... -
Java compile to C++
2013-03-19 14:53 507http://code.google.com/a/eclips ... -
几个TCP Socket的通信框架
2013-03-19 12:26 996http://www.oschina.net/p/simple ... -
宝贝鱼
2013-03-18 23:54 692http://code.google.com/p/cshbbr ... -
将Java程序注册成系统服务(NT服务)
2013-03-16 16:14 604http://blog.csdn.net/small____f ... -
Java内存回收机制
2013-03-13 15:47 814http://www.iteye.com/blogs/tag/ ... -
支付宝,百付宝集成
2013-03-13 14:01 975http://help.alipay.com/support/ ... -
SSH+EXTJS项目下载
2013-03-11 23:02 437http://download.csdn.net/tag/Ex ... -
Hibernate中使用Threadlocal创建线程安全的Session
2013-03-04 20:39 592http://blog.sina.com.cn/s/blog_ ... -
Java Socket多线程通信
2012-10-09 09:53 839当Server没接受到一个Client连接请求之后,都把处理流 ... -
Java 多线程的一个例子
2012-10-09 09:48 1024目录: 1 synchronized的 ... -
app引擎
2012-07-10 09:39 0http://sae.sina.com.cn/ htt ...
相关推荐
在JavaWeb开发中,Servlet技术扮演着至关重要的角色。Servlet是一种Java编程语言的接口,它由Java Servlet API提供,用于扩展服务器的功能,处理来自客户端(通常是Web浏览器)的请求,并向客户端发送响应。本章我们...
在管理信息系统中,JSPServlet技术的应用遵循Model-View-Controller (MVC) 设计模式,确保了系统结构的清晰性和可维护性。其中,Model代表数据模型,负责处理应用程序的业务规则;View即用户界面,展示数据给用户;...
在IT行业中,构建Web应用程序是常见的任务之一,而"Servlet+Mvc模式实现学生管理系统"是一个典型的案例,它展示了如何利用Java技术栈来设计一个简单的管理应用。在这个项目中,我们主要涉及了三个核心技术:Servlet...
Servlet-api-3.0.jar是Java Servlet API的第三版实现,它是开发Web应用程序的重要组成部分,特别是在基于Java的服务器端编程中。这个库包含了用于创建和管理HTTP服务端点的接口和类,允许开发者构建动态、交互式的...
本项目“JSP-Servlet 简单mvc模式”旨在演示如何利用Java的JSP和Servlet技术实现一个基础的MVC架构。下面我们将深入探讨这一模式以及它在项目中的应用。 1. **模型(Model)**: 模型是应用程序的核心部分,负责...
Servlet技术是Java EE(Enterprise Edition)平台中的核心组件之一,主要用于处理Web应用程序中的HTTP请求。本章节将深入探讨Servlet的原理和实践,帮助你理解如何在实际项目中运用这项技术。 1. **C/S与B/S架构** ...
Servlet和JSP(JavaServer Pages)是Java Web开发中的核心技术,用于构建动态Web应用程序。Servlet是一种Java编程接口,用于扩展服务器的功能,而JSP则是一种基于Java的动态网页技术,它将HTML、XML或其他标记语言与...
通过阅读和分析这些代码,你可以学习到如何在实际项目中运用MVC模式和Servlet技术。 总的来说,这个项目为你提供了一个学习和实践Java Web开发,特别是MVC模式和Servlet技术的好机会。通过对源码的研究和数据库的...
第18章:Servlet与JSP核心技术课程--18、Servlet和JSP的集成MVC模式-深入分析MVC架构模式.rmvb 第19章:Servlet与JSP核心技术课程--19、Struts框架运行机理9.1.rmvb 第19章:Servlet与JSP核心技术课程--19、Struts...
这个"Servlet中文帮助文档CHM格式"提供了一个全面的指南,帮助开发者理解和掌握Servlet技术。 CHM(Microsoft Compiled HTML Help)是一种由微软开发的帮助文件格式,它将HTML页面、索引、图片和其他资源打包到一个...
Servlet技术具有高度的可移植性、强大的功能和高效的性能,使得它在Web服务开发中占据了重要的地位。 **6.1.1 Servlet技术简介** Servlet是一种Java应用程序,它遵循Java Servlet API,运行在Web服务器上,处理HTTP...
### Servlet模式的留言板知识点解析 #### 一、实验概述 ...通过以上实验内容的学习与实践,可以深入理解Servlet的工作原理及其在Web开发中的应用,同时也能更好地掌握MVC架构的设计思想和技术实现细节。
1. servlet 相当于 MVC 模式中的 C 控制器。 2. 作为服务器或监听程序并响应客户请求。 3. 后台业务逻辑处理,对后台数据的操作、对组件模型的操作。 4. servlet 有专有的方法 init()、destory()、doGet()、doPost()...
【Servlet和JSP技术概述】 Servlet和JSP(JavaServer Pages)是Java平台上的两种核心技术,主要用于构建动态Web应用程序。它们在Web开发中的角色至关重要,尤其在处理客户端请求和生成响应方面。以下是对Servlet和...
- Servlet作为控制器:在MVC模式中,Servlet负责接收请求,调度模型和视图。 - Struts、Spring MVC等框架:这些框架简化了Servlet的使用,提供了更高级的控制流程和模块化开发。 9. **Servlet的性能优化** - 多...
这份经典的中文说明文档是开发者理解和掌握Servlet技术的重要资源,尤其对于初学者,它提供了清晰易懂的解释。 Servlet API的核心概念包括: 1. **Servlet**: Servlet是一个Java类,它扩展了服务器的功能,可以...
Java EE Servlet技术是Web开发中的核心组件之一,它是由Java Community Process(JCP)定义的一套标准接口,用于处理HTTP请求。Servlet的本质是Java类,它们在服务器端运行,能够接收并响应来自客户端(通常是浏览器...
Servlet API文档是Java Web开发中的核心参考资料,它详细介绍了如何使用Servlet技术来构建动态Web应用程序。Servlet是一种Java类,用于扩展服务器的功能,特别是在Web服务器上处理客户端请求。本中文版Servlet API...
"基于JSP+JavaBean+Servlet模式的图书管理系统" 是一个使用了经典Web开发技术栈构建的应用程序。在这个系统中,JSP(JavaServer Pages)用于展示动态内容,JavaBean作为业务逻辑组件,而Servlet则处理HTTP请求和响应...
在本项目中,"SERVLET技术实现数据库查询",意味着我们将探讨如何利用Servlet来与数据库进行交互,特别是MySQL数据库。SpringMVC是一个基于Spring框架的轻量级Web MVC框架,它简化了在Servlet中处理请求和响应的过程...