servlet的“单例”问题
来源:互联网 发布:数组slice js 编辑:程序博客网 时间:2024/06/18 05:04
按照单例的原理,Servlet结构并不是单例结构,其本身只是一个普通Java类
只是Web容器在维护这些Servlet的时候只给创建一个实例存在JVM中,用户请求服务时,服务器只调用它已经实例化好的Servlet对象来处理请求。所以,告诉你的是Servlet并不是单例,只是容器让它只实例化一次,变现出来的是单例的效果而已。
模仿一个web容器单实例化类:
例子:
package test;
import java.util.Map;
import javax.servlet.Servlet;
public class Test{
private static Map<String, Servlet> map;
public static void setMap(){
/*
* 读取web.xml文件
* 将<servlet-class>web.servlet.servletName</servlet-class>
* 中的类名字map.put("web.servlet.servletName",null);
*/
}
//通过类名字获取对象
public static Servlet getInstance(String servletClassName){
/*
* 读取key
* 当第一次访问该servlet时获取的对象为null
* 第一次访问进行初始化,后面进行访问时直接获取map中的对象
*/
Servlet servlet = map.get(servletClassName);
//为空,则进行初始化
if (servlet==null) {
Class<?> c;
try {
c = Class.forName(servletClassName);
servlet = (Servlet) c.newInstance();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return servlet;
}
}
0 0
- servlet的“单例”问题
- Servlet单例问题
- Servlet单例多线程问题
- servlet是不是单例的?
- servlet的单例多线程
- servlet笔记06:单例问题
- Servlet的单例实现多线程
- servlet单例模式的理解
- 正确理解Servlet的单例多线程
- servlet 是否线程安全,是否单例模式,怎么解决线程安全的问题
- Servlet单实例多线程问题
- servlet单实例多线程问题
- Servlet单实例多线程问题
- (3)servlet单例问题、load-on-startup、ServletConfig
- 单例servlet
- Servlet:单例多线程
- Servlet 单例多线程
- Servlet 单例多线程
- 第七章-类
- 台灣地區計算機術語與大陸地區的對照
- 【LeetCode】Subsets
- Java IO流之中文乱码
- JavaScript高级<2>
- servlet的“单例”问题
- How to config your SDK
- Window宽度和高度属性
- mybatis新新的下载
- centos6.5 nginx 安装
- Oracle
- Firefox禁用JavaScript
- 查询基础和连接数据库
- 10gDataGuard切换前的状态为:SWITCHOVER LATENT