所学的servlet知识点总结

1.servlet生命周期

      1.1 servlet类对象什么时候创建,什么时候调用什么方法,什么时候销毁

       1.2 servelt对象是由tomacat控制的


2.servlet重要的生命周期方法

    构造函数(创建servlet对象):第一次访问servelt对象时候调用。

    init方法:创建完servlet对象的时候调用。

    service方法:每次发出请求的时候调用。

    destory方法:新部署web应用的时候和销毁servlet对象的时候


3.servlet自动加载

默认情况下,第一次访问servlet的时候创建servlet对象,如果servlet构造方法或者init方法中执行了比较多的逻辑结构,那么会导致第一次方法servlet的时候比较慢


解决方法:在web.xml配置中加入,改变了servlet的创建时机,把servlet对象的创建和init方法放在加载web应用中了。数值越大,优先级越低。


4.有参和无参的init方法

无参的init方法是为了让开发者进行覆盖的;它没有servletconfig这个参数。

而有参的init方法是有servletconfig这个参数的。

有参的init方法又调用了无参的init方法

Tomcat默认调用的是有参的init方法

如果我们在想调用init方法时执行一些操作,那怎么办呢,只要我们复写无参的init方法,tomcat在调用完有参的init方法时调用无参的init方法,这样两个操作都执行了。而且我们也不用写super.init();试想一下,如果没有无参的init方法,那我们复写有参的init方法时忘记了些super.init(config)方法,那么config就不能初始化了,而这样设计即使我们不调用super的方法,也不会出问题。何乐而不为呢!

5.servlet对象是单实例多线程的(运行机制)

     如果多线程同时访问servlet对象的共享数据(成员变量),可能会引发线程安全


    解决方法:1)把使用到共享的代码块进行同步(使sychronized关键字进行同步)

                         2)建议在servlet类中尽量不要使用成员变量,如果要是用成员变量,必须同步,而且尽量缩小同步代码块的范围。以避免因为同步而导致并发效率低


5.ServletConfig和ServletContext对象

      5.1 在一个web.xml中可以有多个ServletConfig对象,因为ServletConfig对象是面向一个Servlet对象的,而在web.xml中只能有一个ServletContext,因为它是面对web.xml文件中所有的servlet的。

  

     5.2 作用

          ServletConfig对象主要用于加载Servlet的初始化参数

          ServletContext对象主要用于Servlet上下文,表示一个web应用环境


     5.3 创建时间

         ServletConfig:在创建完Servlet对象之后,在调用init方法之前

         ServletContext:在加载web应用的时候创建


    5.4 API

         见文档!

 

你可能感兴趣的:(所学的servlet知识点总结)