Servlet学习小结

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;
}
}

  

原文地址:https://www.cnblogs.com/WhiperHong/p/11279165.html