- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
GenericServlet介绍
GenericServlet类
1.GenericServlet原理分析
GenericServlet类是一个抽象类,并且是Servlet接口的实现类,HttpServlet类的父类,下面我们通过一张图来更直观的了解GenericServlet的类结构,如图1-1所示:
图1-1 GenericServlet类结构
通过图1-1发现,GenericServlet类不仅实现了Servlet接口,还实现了ServletConfig接口。因此,在GenericServlet类中一定包含Servlet接口和ServletConfig接口的所有方法.。接下来,我们创建一个类来模拟GenericServlet的功能,详情请参考GenericServlet案例详解,点击此处下载源代码。
1 创建应用Example11,新建一个类MyServlet,该类实现了Servlet接口,具体代码如例1-1所示:
例1-1 MyServlet.java
public class MyServlet implements Servlet /*
* 成员变量onfig
* */ private ServletConfig config; public void init @Override
public void destroy System.out.println destroy run...... ; /* * 返回config,该方法一定在init方法之后执行 * */
@Override
public ServletConfig getServletConfig return config; @Override
public String getServletInfo return MyServlet....; /*
* init 方法是这些方法中,最先被用的,在本类构造方法执行后执行.
* */
@Override
public void init ServletConfig servletConfig throws ServletException /* * 将服务器创建的servletConfig对象赋值给本类的成员变量config,方便在其他方法中使用 * */
this.config servletConfig; @Override
public void service ServletRequest arg0, ServletResponse arg1 throws ServletException, IOException System.out.println service run ...... ; /* * 获得Servlet的初始化参数 * */
public String getInitParameter String name return this.config.getInitParameter name ; /*
* 获得ServletContext对象
* */
public ServletContext getServletContext return this.config.getServletContext ; public String getServletName return this.config.getServletName ; 由例1-1可知,当前的MyServlet类中不仅包含了Servlet接口的五个方法,还包含了以下方法:
public ServletConfig getServletContext
public String getInitParameter String name
public String getServletName
由于GenericServlet类实现了ServletConfig接口,那么必然重写了ServletConfig的方法,因此在MyServlet 类中也要定义了ServletConfig的相关方法,这些方法的实现都是通过成员变量config调用自身的方法来实现的。
另外MyServlet类中还有一个无参的init 方法,该方法不是生命周期方法,它会被生命周期方法init ServletConfig 方法调用。 这样做的目的是为了方便继承MyServlet类的子类,完成自己所需要的初始化工作,而不用再定义一个ServletConfig类型的成员变量。
2 再创建一个Servlet类,让该类继承MyServlet 类,具体代码如例1-2所示:
例1-2 SonServlet.java
public class SonServlet extends MyServlet
@Override
文档评论(0)