Servlet是Web学习的一个基础,而且是一个比较重要的知识点,因为后期框架的封装也是在这个基础上进行封装,下边对其基本应用做些说明。
1、简介
Servlet简单的理解就是一个JAVA类,但是其工作特点有点特殊,它是工作在服务器端的,也是一个小的服务程序,在Web中,当一个请求过来时,Servlet可以对其进行相应的处理。
2、生命周期
下图是在API中Servlet的相关方法说明。
其中init()、service()、destory()为Servlet有关生命周期的方法;init()为Servlet的初始化方法,destroy()方法为Servlet的销毁方法,service()方法为Servlet的核心服务方法。
初始化:一般Servlet是在客户端向服务器请求第一次调用该Servlet时会进行初始化操作,为了提高效率也可以在web.xml文件的<servlet>标签中配置<load-on-startup>标签让Servlet在服务器启动时进行初始化操作,例如服务器中的DefaultServlet。
销毁:在web应用程序从服务器移除,或服务器停止都会将服务器中的Servlet销毁,这时候就会执行destory方法。
服务:在servlet创建之后就驻留与内存,每次客户端对该Servlet的请求都会调用service方法,为这次请求服务。
3、DefaultServlet
上边说明过了,服务器端的DefaultServlet会在服务器启动时第一个创建出来,这个Servlet在服务器端起着举足轻重的功能。在此需要说明的是我们的每一个客户端请求都会请求到一个Servlet上,如果我们访问的是一个静态的网页资源,在服务器端找不到我们请求的Servlet,这是会由DefaultServlet处理,经过判断,如果为静态页面资源,DefaultSerrvlet就会将页面资源处理,并有response对象将数据返回给客户端。
所以我们不要轻易配置一个默认的Servlet,如果我们的默认Servlet将服务器的覆盖后,我们请求的静态页面资源将无法访问。
4、家族成员——ServletConfig
在配置Servlet的过程中我们可以通过<init-param>标签为Servlet配置初始化参数,这些初始化参数会在Servlet创建的过程中封装到ServletConfig对象中,我们可以通过该特性,将在Servlet中用到的信息,但是又容易发生变化的信息配置起来,在Servlet中通过ServletConfig对象获取出来。
5、家族对象——ServletContext
在服务器启动时会为每一个Web应用程序创建一个ServletContext对象,它代表整个WEB应用,通过该对象可以获取该WEB应用的相应信息,例如获取文件资源和相关路径,以及Servlet的相关信息等。