资源描述:
《Servlet的生命周期及常用对象.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第十四天课堂笔记1.多线程下的单例设计模式a)单例:singleton,只创建一个对象b)饿汉式单例模式i.类被加载时就创建一个对象;ii.静态成员变量只被加载一次,所以只创建一个对象iii.优点:代码简单iv.缺点:有可能创建不必要的对象packagecom.bjsxt.web.singleton;publicclassHungrySingleton{privatestaticHungrySingletoninstance=newHungrySingleton();privateHungrySingleton(){try{Thread.sle
2、ep(1000);}catch(InterruptedExceptione){e.printStackTrace();}System.out.println("HungrySingleton.HungrySingleton(饿汉式单例-->创建了一个对象)");}publicstaticHungrySingletongetInstance(){//饿汉式单例returninstance;}}c)懒汉式单例模式i.静态成员变量初识赋值为null,类加载时并不会创建对象;ii.通过doublecheck机制,保证只有在第一次调用时才去创建对象,而且
3、只创建一次;i.优点:不会创建多余的对象ii.缺点:代码稍微复杂packagecom.bjsxt.web.singleton;publicclassLazySingleton{privatestaticLazySingletoninstance=null;privateLazySingleton(){try{Thread.sleep(1000);}catch(InterruptedExceptione){e.printStackTrace();}System.out.println("LazySingleton.LazySingleton(懒汉
4、式单例-->创建了一个对象)");}publicstaticLazySingletongetInstance(){if(instance==null){synchronized(LazySingleton.class){if(instance==null){//doublecheckinstance=newLazySingleton();}}}returninstance;}}2.Servlet的生命周期a)载入:即创建Servlet对象,在第一次请求的时候创建,只创建一次(懒汉式单例);b)初始化:即调用init方法,在第一次请求的时候调用i
5、nit,只执行一次;c)执行:即调用service方法,每次请求都会调用service方法,执行若干次;d)销毁:在Servlet销毁前,服务器自动调用destroy方法3.load-on-startupa)load-on-startup标签用于配置Servlet的加载(实例化和初始化)时间b)如果不配置或配置后加入一个负整数,表示该Servlet不会在服务器启动(项目部署)时加载,而是用到的时候才加载c)如果配置该标签并加入一个正整数,表示服务器启动时就会加载Servlet,同时,数字越小,加载顺序越优先2.HttpServletReques
6、t对象a)HttpServletRequest是一个接口,它继承了ServletRequest接口b)该对象由Servlet容器创建,并作为参数传递给Servlet的service方法,用于把客户端的请求信息传递给Servletc)获取请求行信息的方法:privatevoidgetReqLine(HttpServletRequestreq){System.out.println("请求方式:"+req.getMethod());System.out.println("路径URL:"+req.getRequestURL());System.out
7、.println("路径URI:"+req.getRequestURI());System.out.println("协议版本号:"+req.getProtocol());System.out.println("协议名称:"+req.getScheme());System.out.println("get方式的queryString:"+req.getQueryString());}d)获取请求头信息的方法:privatevoidgetReqHead(HttpServletRequestreq){Stringreferer=req.getHea
8、der("Referer");System.out.println("Referer:"+referer);Enumeration>e=req.g