servlet总结

1、servlet运行过程:

①web服务器受到浏览器的servlet请求后,web容器首先检查是否装载并创建了该servlet实例对象。

②如果没有,web容器则装载并创建servlet实例对象。如果有,则直接跳到④。

③调用servlet的init方法。

④创建一个封装了http请求消息的httpservletrequest对象,和一个代表http响应消息的httpservletresponse对象,并将这两个对象作为参数,传入service方法。

⑤web应用被停止或者被重启之前,会调用destroy方法。

2、servlet与普通java类区别:

①servlet不能独立运行,完全用servlet引擎来控制和调度。

②通常情况下,servlet使用单例模式,只在第一次访问时创建一次,可多次调用。

3、配置文件中<servlet>标签内增加<load-on-startup>1</load-on-startup>,可在web容器启动时创建servlet,常用于创建必要的数据库表和数据。

4、web.xml找不到的servlet,会由缺省servlet处理。

在tomcat的web.xml文件中,注册了一个名为org.apache.catalina.servlets.DefaultServlet的servlet,并设置为缺省servlet,即路径为"/"

服务器访问的静态html或图片等,实际是在访问这个缺省servlet。

5、默认情况下,servlet是单例多线程。如果servlet中有全局变量,则会引起线程不安全。

为了避免引起线程安全问题,可以实现接口SingleThreadModel,这样将会取消servlet的单例模式,通过创建多个servlet的实例对象来避免线程安全问题发生。

6、servletContext:

web容器在启动时,会为每一个web应用程序都创建一个对应的servletContext对象,它代表当前web应用。

ServletConfig维护了servletContext对象的引用,可以通过getServletContext方式获得servletContext对象。

一个web应用中,只有一个servletContext,因此servlet对象间可以通过servletContext实现通讯。

servletContext对象被称为context域对象。

posted @ 2017-04-13 14:12  一响贪欢  阅读(161)  评论(0编辑  收藏  举报