【Servlet】Servlet介绍
来源:互联网 发布:2016年电信诈骗数据 编辑:程序博客网 时间:2024/04/28 08:31
Servlet是开发Servlet应用程序的主要技术。掌握Servlet API是成为Java Web高手的基础;Servlet API定义了70多种类型;
Servlet API 概述
Servlet API中有4个Java包,包括:
- javax.servlet:定义了Servlet与Servlet容器之间契约的类和接口;
- javax.servlet.http:定义包含HTTPServlet与Servlet容器之间的契约的类和接口;
- javax.servlet.annotation:包含对Servlet,Filter和Listener进行标注注解;还为标注元件指定的元数据
- javax.servlet.descriptor:定义为Web应用程序的配置信息提供编程式访问的类型;
javax.servlet包
Servlet技术的核心是Servlet接口,是所有Servlet类都必须直接或者间接实现的接口,当编写Servlet接口的Servlet类时候,直接实现它;当扩展一个实现这个接口的类时,则间接实现它;
Servlet接口定义了一个Servlet和Servlet容器之间的一个契约;这个契约归结起来就是:Servlet容器会把Servlet类加载到内存中,并在Servlet实例中调用特定的方法,在一个应用程序中,一个Servlet只有一个实例;
用户的请求会引发Servlet容器调用一个Servlet的service方法,并给这个方法传入一个ServletRequest实例和一个ServletResponse实例;ServletRequest封装当前Http请求,以便Servlet的开发者不必解析和操作原始的HTTP数据;ServletResponse表示当前用户HTTP响应,它的作用是使响应传送给用户更容易;
Servlet容器还未每个应用程序创建了一个ServletContext实例,这个对象封装context(应用程序)的环境细节;每个context只有一个ServletContext;每个Servlet实例还有一个封装的Servlet配置信息的ServletConfig;
先看一个Servlet接口:
Servlet定义的5中方法:
void init (ServletConfig config) throws ServletException;void service(ServletRequest request,ServletResponse response) throws ServletException,java.io.IOException;void destory();java.lang.String getServletInfo();ServletConfig getServletConfig();
init,service和destory方法属于Servlet周期方法;Servlet容器将根据以下原则调用这三个方法:
init
:第一次请求Servlet时,Servlet容器就会调用这个方法,在后续的请求中,将不再调用这个方法;可以利用这个方法来编写一些应用程序初始化相关的代码;在调用这个方法时,Servlet容器会传递一个ServletConfig;一般来说,会将ServletConfig赋值给一个级类变量,一遍Servlet类中的其它的方法也可以使用这个对象;
service
:每次请求Servlet时,Servlet容器都会调用这个方法;多次使用;这个是核心方法,必须编写Servlet完成的相应代码、第一次请求Servlet时,Servlet容器会调用init方法和service方法,对于后续的请求,则只调用service方法;
destory
:要销毁Servlet容器时调用,通常发生在卸载应用程序,或者关闭Servlet容器的时候,一般来说,可以在这个方法中编写一些资源清理相关代码;
Servlet中另外两个方法是非生命周期的:getServletInfo和getServletConfig;
getServletInfo
:返回Servlet的描述;
getServletConfig
:返回Servlet容器传递给init方法的ServletConfig;但是,为了让getServletConfig返回值不为null,你需要为给init方法的ServletConfg赋一个类级变量;
最后,要注意线程安全,一个应用程序中所有的用户将共用一个Servlet实例,因此不建议使用类级变量,除非它们是只读的。或者是java.util.concurrent.atomic包中的成员,即原子类;
- 【Servlet】Servlet介绍
- Servlet介绍
- Servlet介绍
- Servlet介绍
- servlet介绍
- Servlet 介绍
- Servlet介绍
- servlet介绍
- Servlet介绍
- Servlet介绍
- servlet介绍
- servlet介绍
- Servlet介绍
- Servlet介绍
- servlet介绍
- Servlet介绍
- servlet介绍
- Servlet介绍
- PHP学习笔记——php运行坏境的下载安装,php运行坏境的介绍(上)
- P1125 笨小猴 map
- idea常用设置(二) 【转自】请叫我大表哥
- 最简单,有效的学习mysql教程(一)
- 写给设计新人的小指导
- 【Servlet】Servlet介绍
- Android App第一次启动或者更新或第一次启动
- 阿里云 ECS 服务器 安装 MySQL 数据库
- P1090 合并果子 <优先队列>
- 线性代数5-矩阵对角化与特征值
- tensorflow的用法总结
- mysql(五)视图
- 从零开始学HTTP (一)网络基础
- XVS1500虚拟演播室系统 真三维虚拟一体机高清虚拟在线直播