实现Servlet的三种方式(与GenericServlet、HttpServlet的关系)
WEB服务器可以存放数据,他是一个“容器”,作用是接收用户的请求,再对这个请求做出相应。Java的Web服务器必须要支持JSP/Servlet(作为JSP/Servlet的容器)。所以JSP/Servlet就是JavaWeb服务器的一套规范。所以要进行JavaEE开发,就要遵循Servlet规范。Tomcat就是遵循了JSP/Servlet规范的WEB服务器实现Servlet的三种方式...
WEB服务器可以存放数据,他是一个“容器”,作用是接收用户的请求,再对这个请求做出相应。
Java的Web服务器必须要支持JSP/Servlet(作为JSP/Servlet的容器)。
所以JSP/Servlet就是JavaWeb服务器的一套规范。
所以要进行JavaEE开发,就要遵循Servlet规范。
Tomcat就是遵循了JSP/Servlet规范的WEB服务器
实现Servlet的三种方式
-
方式一:编写一个类去实现Servlet接口(必须重写Servlet接口里面所有的抽象方法)
-
方式二:编写一个类去继承GenericServlet抽象类(重写生命周期的service方法(抽象方法))GenericServle抽象类它实现了Servlet接口,还实现了ServletConfig接口(这个接口中提供了一个getServletContext方法)可以在编写一个类中直接调用getServletContext方法就可以获得ServletContext对象。(开发中不常用)
-
方式三:编写一个类去继承HttpServlet抽象类(没有抽象方法!根据页面的提交方式决定重写doGet或者doPost方法)
谈到这三种方式就要说一下Servlet接口与抽象类GenericServlet、抽象类HttpServlet的关系
关系说明:
Servlet接口中定义了一些方法,这些方法与Servlet的生命周期有关
当用户第一次访问Servlet的时候,由服务器容器Tomcat来创建Servlet实例对象(调用的无参构造)!在整个Servlet生命周期中只会创建一次!一旦创建完毕,立即调用**init(ServletConfig config)方法完成Servlet的初始化!该方法在整个Servlet生命周期中只会执行一次!紧接着调用service(ServletRequest request,ServletResponse response)服务方法处理用户请求,该方法在整个Servlet生命周期中执行N次(每请求一次执行一次)当服务器关闭之前调用destroy()**方法来销毁Servlet实例对象!!!该方法在整个Servlet生命周期中只会执行一次!
初始化方法init()中的ServletConfig对象是作为生命周期初始化方法init的参数
SerlvetConfig对象:代表的是当前Servlet初始化配置项的信息
利用ServletConfig对象主要是为了得到Context对象。(Context对象可以帮助我们与用户进行交互)
获得指定初始化参数的值: String getInitParameter(String name);
【需要在web.xml文件中进行配置】
获得所有初始化参数的名称: Enumeration getInitParameterNames();
【需要在web.xml文件中进行配置】
获得ServletContext对象:ServletContext getServletContext();
获得当前Servlet的名称: String getServletName();
GenericServlet
GenericServlet是一个抽象类,它实现了Servlet接口,并且还实现了ServletConfig接口,ServletConfig接口中直接提供了getServletContext方法,所以当我们在实现Servlet时直接继承GenericServlet这个抽象类,就可以直接使用getServletContext方法来获取Context对象了。
HttpServlet
HttpServlet也是一个抽象类,但是他内部没有抽象方法(有抽象方法的类一定是抽象类,但抽象类中不一定有抽象方法),他又继承了GenericServlet抽象类,所以具有了GenericServlet的优点。在实现Servlet接口时,直接继承HttpServlet抽象类,再根据网页提交的方式确定使用doGet()方法还是doPost()方法
图解
更多推荐
所有评论(0)