Servlet的特点
Servlet是一个供Servlet引擎调用的java类,他不能独立运行,它的运行完全是由Servlet引擎来控制和调度。Servlet引擎是一种容器程序,他负责管理和维护所有Servlet对象的生命周期,Servlet的加载,执行流程,以及如何接收客户端发送的数据和如何将数据传输到客户端等具体的底层事务,都是由Servlet引擎来实现的。Servlet引擎负责将客户端的请求信息转交给Servlet和将Servlet生成的响应信息返回给客户端。
Servlet是一种插件,它是一个提供了一些约定方法供容器去调用的类,它只负责在自身的方法中接受并处理容器传递进来的数据,以及生成并返回给容器去使用的数据和状态信息。
Servlet最常见的应用在于读取Web浏览器传递给web服务器的参数和生成web服务器返回个web浏览器的动态网页文档内容,Servlet也能获取web浏览器发送的http请求行信息,以及生成用于web服务器发送的http响应消息中的状态行和响应头信息,Servlet还能获取web服务器和Servlet引擎自身的一些环境和状态信息。
Servlet程序的运行过程就是它与Servlet引擎的交互过程,Servlet程序只与Servlet引擎打交道,他并不与web服务器和客户端进行任何直接的交互。
Servlet本身是一个Java语言的应用,能完成普通Java程序所能完成的所有功能。可以访问本地文件系统,访问数据库,调用其他的Java类等,在Servlet中还可以将http请求/响应的状态信息保存到Servlet引擎中,从而实现web浏览器web服务器之间有状态的会话。
web服务器上可以布置多个功能个不相同的Servlet,每个Servlet都应设置它可以处理何种样式的url请求,当符合的url请求到达时,Servlet引擎调用相应的Servlet进行处理。
Servlet的运行过程
Servlet引擎按照这样的过程来调用一个Servlet程序,
1,接受到访问某个Servlet的http请求之后,Servlet引擎首先检查是否已经装载并创建了该Servlet的实例对象,如果已经转载并创建了该Servlet的实例对象,Servlet引擎则直接执行第4步,否则实现第2步。
2,装载并创建Servlet的一个实例对象。
3,调用Servlet实例对象的init()方法,执行Servlet的一些初始化程序。
4,创建一个用于封装Servlet请求消息的HttpServletRequest对象和一个代表Servlet响应消息的HttpServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。
5 ,web应用程序停止或重启之前,Servlet引擎将卸载其中运行的Servlet。在卸载Servlet之前,Servlet引擎将调用Servlet的destroy()方法,以便在这个方法中执行Servlet的一些清尾工作,例如释放占用的资源。Servlet被Servlet引擎卸载后,将变成垃圾,等待java虚拟机垃圾收集器将其彻底从内存中清除。
对这个运行过程的一些说明:
1,在<servlet>元素中嵌套一个<load-on-startup>子元素,web应用程序在启动时就可以转载并创建Servlet的实例对象,以及调用Servlet实例对象的init()方法。<load-on-startup>中的内容设置为0或一个正整数,这个数字越小,Servlet被加载的时间就越早。
2,在Servlet的整个生命周期内,它的init方法只被调用一次,而对一个Servlet的每次访问请求都导致Servlet引擎调用一次Servlet的service()方法,对于每次访问请求,Servlet引擎都会创建一个新的HttpServletRequest请求对象和一个新的HttpServletResponse响应对象。
3 ,tomcat也提供了是否自动重新装载被修改的Servlet的配置选项,在<tomcat安装目录>/conf/server.xml文件中,可以将<context>元素的reloadable属性设置为TRUE,这样Tomcat就能自动重新装载该web应用程序的/WEB-INF/classes和/WEB-INF/lib目录下的发生了改变的类。
文章信息来源:
http://aguang520.iteye.com/blog/794650
分享到:
相关推荐
Servlet 跳转是指 Servlet 程序在执行过程中将控制权转移到另一个资源的过程,例如跳转到另一个 Servlet、JSP 或 HTML 页面。Servlet 跳转可以分为两大类:Redirect 跳转和 Forward 跳转。 Redirect 跳转 Redirect...
#### 二、Servlet与CGI对比及特点 ##### 2.1 Servlet vs CGI - **相同点**:两者都是运行在Web服务器端的组件,都能产生动态网页输出。 - **不同点**: - 进程与线程:传统CGI对每个HTTP请求都会创建一个新的进程...
### Servlet学习入门教材知识点概述 本教材旨在帮助初学者理解并掌握Servlet的基础概念与核心...通过上述知识点的学习,读者将能够掌握Servlet的基本原理及使用方法,并为进一步深入学习Java Web技术打下坚实基础。
Apache Tomcat 7.0.61是广泛使用的开源Servlet容器,它实现了Servlet 3.0规范,提供了稳定、高性能的运行环境。 一、Servlet 3.0新特性 1. 注解支持:Servlet 3.0引入了注解(Annotation)来声明Servlet、Filter和...
在学习Servlet时,理解其与JSP的区别以及它们各自的特点是非常重要的。 首先,Servlet与JSP主要有以下区别: 1. Servlet在Java代码中通过HttpServletResponse对象动态输出HTML内容,这意味着所有的业务逻辑都必须在...
Servlet的主要特点是可移植性,由于其基于Java,可以跨平台运行。同时,Servlet具有强大的功能,因为它可以使用Java API的所有功能。安全性方面,Servlet由服务器容器(如Tomcat)管理,提高了安全标准。Servlet设计...
SpringMVC是一个基于Spring框架的轻量级Web MVC框架,它简化了在Servlet中处理请求和响应的过程,提供了模型-视图-控制器的架构模式。 1. **Servlet基础**:Servlet是Java编写的小型服务器端程序,它们扩展了Web...
Servlet生命周期包括加载、初始化、服务和销毁四个阶段,初始化阶段仅执行一次,之后Servlet实例会一直驻留在服务器内存中,直到服务器关闭或Servlet被显式卸载。 Servlet的优点主要包括: 1. **跨平台**:由于基于...
- **高效率**:JSP 文件会被编译成 Servlet,然后在服务器上运行,提高了执行效率。 - **灵活性**:JSP 支持多种数据源,可以轻松地集成数据库和其他外部资源。 - **可维护性**:由于逻辑和视图分离,使得代码更加...
本文将详细介绍 Servlet 3.1 规范的主要特点及新增功能。 #### 二、Servlet 3.1 的主要特性 ##### 1. 异步支持增强 Servlet 3.1 中最显著的变化之一就是增强了异步处理能力。这包括对 `AsyncContext` 接口的改进...
1. **Servlet生命周期**:了解Servlet的初始化、服务和销毁过程,以及如何使用`@WebServlet`注解进行配置。 2. **HttpServletRequest和HttpServletResponse接口**:掌握这两个接口,用来获取请求信息和设置响应数据...
#### 1.1 Java Servlet 的定义及特点 Servlet 技术作为 Java 平台的一项关键技术,在 Web 开发领域占据着举足轻重的地位。Servlet 是一种服务器端的小程序,主要负责接收来自客户端的请求,并根据请求生成相应的...
- 安全性:Servlet运行在服务器端,与客户端之间的交互通过HTTP协议进行,这使得整个过程更加安全可靠。 - 功能强大:Servlet不仅可以处理HTTP请求,还可以处理其他类型的网络协议请求,具有很高的灵活性。 - **...
- `destroy()`:销毁方法,在Servlet对象被销毁前执行,用于释放资源。 - **Servlet实例化**:通常由容器如Tomcat负责创建Servlet实例,并且每个Servlet类只会有一个实例。 #### 三、Servlet的配置与使用 - **...
而JSP的服务过程则依赖于编译后的Servlet,其执行方式与普通Servlet相同。 - **销毁**:Servlet的`destroy()`方法在Servlet实例销毁前调用一次;JSP没有单独的销毁方法,因为它的编译后Servlet的销毁过程与普通...
为了运行Servlet和JSP,我们需要安装和配置Servlet容器,比如Apache Tomcat 6.0。Tomcat是一个开源的Servlet容器,符合Servlet和JSP规范,能提供运行Java Web应用的环境。 **5-17. 编写及部署Java Web应用** - **...