您的位置:首页 > 其它

J2EE应用讲解(2)——Servlet基础理论

2011-12-12 19:52 666 查看
J2EE为我们提供了13个标准.其中servlet是web开发中核心的标准之一.下面让我们一起走进servlet的学习.
一:servlet简介Servlet是运行在Web服务器上的Java程序,用于响应客户请求。也可以说,Servlet是Java组件,部署在Web服务器上,能在请求/响应通信模式下有效地工作。我们常见的J2EE中关于servlet的类和接口有很多,我们常见的是servlet接口.这个是所有servlet都要实现的一个接口.还有GenericServlet即通用servlet.是独立于协议的servlet.它实现了servlet接口.我们常用到的是HttpServlet它是用在http协议上的servlet.
二:下面总几个方面对servlet进行总结1:接口我们可使用以下两种方式之一创建Servlet:● 实现Servlet接口● 扩展的GenericServlet类或HttpServlet类在创建Servlet后,还要描述Servlet细节,以及在运行时环境中,Servlet及Web应用程序中其他关联Web组件的附加信息。规范将XML文档中嵌入的这些信息称为部署描述符,供Web容器在部署组件时使用。在创建和部署Servlet后,Servlet成为Web服务器“容器”中的“实例”。我们可以创建两类的servlet一种是单线程的servlet.实现SingleThreadModel.这时web容器将所有的客户请求转发给一个实例.另一种是多线程的servlet.多线程的servlet有很多地方需要注意.很容易造成数据的不一致.
2:servlet生命周期


init()方法使Servlet进入“就绪”状态。之后,Servlet可接收服务请求,服务请求时执行service()方法。当容器决定销毁Servlet时,将调用destroy()方法. Servlet开始。init()方法由容器调用,只运行一次,使Servlet进入“就绪”状态。这个过程称作Servlet初始化。如果开始阶段出现异常,Servlet将不能响应任何用户请求。在初始化过程中,init()方法使用ServletConfig对象。ServletConfig包含Servlet需要的初始化参数的名-值对。通常,目录、文件路径及其他资源信息将写入这个对象。servlet服务。在正确初始化Servlet后,Servlet就可以接收客户端服务请求了。Servlet容器可能通过Servlet的service()方法发送多个并发请求.表单提交以后首先执行的是service()方法.service方法会调用相应的doget()或者doPost方法.这个根据客户端提交的方式决定.Servlet 销毁.当容器认定不再需要某个Servlet时,可以调用Servlet的destroy()方法,释放Servlet占用的所有容器资源。不过,容器不能调用活动Servlet的destroy()方法。在调用Servlet的destroy()方法前,容器需要确保以下两点:● 阻塞更多新请求● 完成所有待处理请求 3:Servlet上下文Web服务器能支持若干Web应用程序。每个Web应用程序又能支持一个或多个Servlet。同一个Web应用程序的多个Servlet需要共享Web应用程序环境的资源。为此,Servlet规范提供了ServletContext接口。对于ServletContext而言,最重要的上下文信息包括:● 初始化参数● 上下文属性● 资源初始化参数。初始化参数用来初始化Web应用程序,而不是前面“Servlet开始”区域讨论的单个Servlet。这些参数由部署描述符中的“键-值”对提供。ServletContextAPI允许通过getInitParameter()和getInitParameterNames()等方法访问这些初始化参数。上下文属性。上下文属性是一组应用程序属性,由Web应用程序的Servlet共享。可设置和获得参数,也可通过编程方法,从Web应用程序中删除上下文属性。ServletContextAPI允许通过多种方法访问上下文属性,如setAttribute()、getAttribute()、removeAttribute()和getAttributeNames()等。资源。“静态”内容文件的层次,是Web应用程序的一部分,被称为“Web应用程序资源”,包括HTML、GIF和JPEG等文件。ServletContextAPI允许通过多种方法访问这些资源,例如getResource()和getResourceAsStream()等。
4 请求Servlet的服务方法有权访问请求对象ServletRequest或HttpServletRequest。请求对象包含客户请求及其他一些相关信息。该对象将用作传给service()方法的两个参数中的第一个参数。请求参数采用“键-值”对格式。在特定环境下,一些键可能有多个值。HttpServletRequest对象的几个重要方面如下:● 属性● 头● Cookie 5 响应Servlet的服务方法有权访问响应对象。响应对象将是ServletResponse或HttpServletResponse。该对象包含了响应客户端的信息和所有其他相关细节,是service()方法两个参数中的第二个参数。客户端响应打包在HttpServletResponse对象中。HttpServletResponse对象的重要组成部分有:● 头● 缓冲区● 响应类型和格式 6 过滤过滤(filtering)是Servlet2.3版的新特性。Filter是特殊的Servlet.过滤器(Filter)是轻量级Web组件,能及时转换HttpServletRequest和HttpServletResponse对象的头和内容。Filter和Servlet都是Web应用程序的一部分,都用生命期方法管理。顾名思义,Filter为Servlet的请求/响应操作提供过滤服务。如图6-13所示,过滤器可以“过滤”传给Servlet的请求,也可以“过滤”将要从Servlet发送到客户端的响应。它们不仅处理静态内容,也处理动态内容。Web应用程序可用的一些过滤组件如下:● 身份验证Filter● 加密Filter● 转换Filter
7 会话这一部分规范旨在将客户端绑定到特殊“会话”,以便将从客户端到Web应用程序的一系列请求/响应操作视为最终事务的组成部分。这需要做一些工作,因为从设计上讲,HTTP是一个无状态协议。Servlet支持以下会话跟踪机制:● Cookie● HTTP会话● URL重写
8. 安全性大多数企业应用程序都在Internet上部署运行,故有必要营造一个安全环境,以便用户在企业应用程序上安全地执行交易。任何企业应用程序都需要以下一些基本安全功能:● 身份验证● 访问控制● 数据完整性● 保密性可通过组合使用以下两种方式确保Web应用程序的安全性:● 声明性安全● 编程性安全
9 部署描述符部署描述符就像Web应用程序的“万年历”。这个就是XML文件中描述的内容.Servlet 2.3版要求使用必需的部署描述符,以记录Web应用程序的重要方面:● Servlet声明● Servlet映射● ServletContext初始化参数● 会话声明● 应用程序生命期监听者声明
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: