标签:public 构造 生命周期 表示 通过 server doget 流程 highlight
1.servlet定义
server applet,服务器小程序
2.servlet特点
a.指实i现了Servlet接口的类
b.servlet必须在支持servlet的服务器上才能运行
c.一个servlet负责处理一个或一组url请求,并返回响应数据
3.servlet运行流程
a.客户端通过url,发送请求给服务器
b.服务器调用servlet
c. servlet执行代码,返回数据给服务器
d.服务器返回数据给浏览器
e.浏览器解析数据,展示数据
4.urlPattern格式
a. /ccc
b. *.ccc
c. ccc/*
5.servlet生命周期
a.载入并初始化,init()方法,只执行一次
b.运行,service() :每当用户发请求时,服务器会创建一个线程,调用servlet的service()方法,父类有dopost,doget方法调用后会报405错误,子类需要重写doget,dopost方法;
servlet是单例调用:多个线程访问同一个对象,节约内存 。
6.单例模式:一个类只能创建一个实例
a. SingleTonEH 恶汉式:当加载类时,对象就已经存在
public class SingleTonEH{ //static表示一个类只执行一次 private static SingleTonEH instance =new SingleTonEH() //私有化构造器 private SingleTonEH(){ } //提供一个能获取该对象的方法 ,静态方法,只有一份 public static SingleTonEH getInstance(){ return instance; } } //LH lan汉式:当调用对象时再创建对象 public class SingleTonLH{ //新建一个空对象 private SingleTonLH instance =null //私有化构造器 private SingleTonEH(){ }
b. SingleTonLH 懒汉式:当调用该类的对象时,才创建对象
public class SingleTonLH{ //新建一个空对象 private SingleTonLH instance =null //私有化构造器 private SingleTonEH(){ } //提供一个能获取该对象的方法 ,静态方法,只有一份 public static SingleTonLH getInstance(){ //当instance对象为空时才创建对象 if(instance==null){ //对象锁,避免多线程同时访问创建多个对象 synchronized(SingleTonLH.class){ //第二个判断不能省,可能出现2个线程都进入第一个判断里面 if(instance==null){ instance=new SingleTonEH() } } } return instance; } }
标签:public 构造 生命周期 表示 通过 server doget 流程 highlight
原文地址:https://www.cnblogs.com/WhiperHong/p/11279165.html