【JavaWeb】Servlet介绍及生命周期

1.model1开发模式和model2开发模式?

model1模式:

【JavaWeb】Servlet介绍及生命周期

xx.jsp->xx_do.jsp->yy.jsp->yy_do.jsp...

做数据的显示和数据的收集,以及数据的处理和控制都是由jsp来完成,这种开发模式是model1模式;model1模式适合快速开发但是不适合做大型项目开发,原因是因为jsp这种技术更适合做显示

model2模式

【JavaWeb】Servlet介绍及生命周期

xx.jsp->xxservlet->yy.jsp->yyservlet..

2.Servlet类的特点

1.层次结构

 (1).Javax.servlet.servlet(接口):在此接口中定义了servlet的生命周期(servlet对象什么时候被实例化,什么时候这个实例化会被销毁)方法-->init()、service()、destory()

init():第一次发送请求访问一个servlet实例的时候会被调用,只能调用一次

service():每次发送请求访问这个servlet实例的时候都会调用

destory():对象被销毁之前被调用一次

servlet生命周期流程:

【JavaWeb】Servlet介绍及生命周期

(1.1)javax.servlet.GenericServlet(抽象类实现类servlet接口):重写了servlet接口中的init()和destory()方法,并且对接口功能做了适当的扩展,但是并没有实现service()方法

(1.1.1)javax.servlet.http.HttpServlet(抽象类继承了GenericServlet抽象类):重写了service()方法,同时对GenericServlet做了扩展

      第一:重载了service()方法,service(HttpServletRequest req,HttpServletResponse resp),目的是更好的适应web开发

      第二:扩展了doxx()这样一组方法,适应不同的请求类型(Get/Post/Head/Put/Delete/Trace/Options)调用对应的doxx()方法来专门这种请求类型的操作

(1.1.1.1)如果开发者需要编写基于web开发的servlet那么就必须继承HttpServlet,并且根据需要重写其中的doxx()或者service()方法

编写servlet的步骤:

   (1)必须继承HttpServlet,并且根据需要重写其中的doxx()或者service()方法,以及其他的方法init().destory()

  (2)必须要配置web.xml文件,目的是描述怎么访问到servlet实例

    <servlet>    

<servlet-name>名称(随意起)</servlet-name>    

<servlet-class>Servlet类的完整类名</servlet-class>

 </servlet>  

<servlet-mapping>

   <servlet-name>名称(随意起,和上方servlet-name保持一致)</servlet-name>

   <url-pattern>/访问路径</url-pattern>

 </servlet-mapping>