GenericServlet的讲解
来源:互联网 发布:影楼网络销售工资待遇 编辑:程序博客网 时间:2024/06/07 03:49
GenericServlet是Servlet接口的实现类,我们可以通过继承GenericServlet来编写自己的Servlet。下面是GenericServlet类的源代码:
public abstract class GenericServlet implements Servlet, ServletConfig,java.io.Serializable { private static final long serialVersionUID = 1L; private transient ServletConfig config; public GenericServlet() {} @Override public void destroy() {} @Override public String getInitParameter(String name) { return getServletConfig().getInitParameter(name); } @Override public Enumeration<String> getInitParameterNames() { return getServletConfig().getInitParameterNames(); } @Override public ServletConfig getServletConfig() { return config; } @Override public ServletContext getServletContext() { return getServletConfig().getServletContext(); } @Override public String getServletInfo() { return ""; } /* 实现了Servlet的init(ServletConfig)方法,把参数config赋给了本类的成员config,然后再调用本 类自己的无参的init()方法。 */ @Override public void init (ServletConfig config) throws ServletException { this.config = config; this.init(); } /* 特别注意: 这个方法是GenericServlet自己的方法,而不是从Servlet继承下来的。当我们自定义Servlet时,如果想完 成初始化作用就不要再重复init(ServletConfig)方法了,而是应该去重写init()方法。因为在 GenericServlet中的init(ServletConfig)方法中保存了ServletConfig对象,如果覆盖了保存 ServletConfig的代码,那么就不能再使用ServletConfig了。 */ public void init () throws ServletException {} public void log(String msg) { getServletContext().log(getServletName() + ": " + msg); } public void log(String message, Throwable t) { getServletContext().log(getServletName() + ": " + message, t); } @Override public abstract void service(ServletRequest req, ServletResponse res) throws ServletException, IOException; @Override public String getServletName() { return config.getServletName(); }}
1. GenericServlet的init()方法 在GenericServlet中,定义了一个ServletConfig config实例变量,并在init(ServletConfig)方法中把参数ServletConfig赋给了实例变量。然后在该类的很多方法中使用了实例变量config。如果子类覆盖了GenericServlet的init(StringConfig)方法,那么this.config=config这一条语句就会被覆盖了,也就是说GenericServlet的实例变量config的值为null,那么所有依赖config的方法都不能使用了。如果真的希望完成一些初始化操作,那么去覆盖GenericServlet提供的init()方法,它是没有参数的init()方法,它会在init(ServletConfig)方法中被调用。2. 实现了ServletConfig接口 GenericServlet还实现了ServletConfig接口,所以可以直接调用getInitParameter()、getServletContext()等ServletConfig的方法。
1 0
- GenericServlet的讲解
- GenericServlet的基本
- JAVAWEB-GenericServlet的使用方法
- GenericServlet的常用方法
- GenericServlet
- GenericServlet
- GenericServlet
- GenericServlet
- GenericServlet的init方法---init()--
- Servlet,GenericServlet,HttpServelet 的关系
- 循循渐进的GenericServlet
- Servlet的实现类-GenericServlet
- servlet、genericservlet、httpservlet之间的区别
- servlet、genericservlet、httpservlet之间的区别
- servlet、genericservlet、httpservlet之间的区别
- servlet、genericservlet、httpservlet之间的区别
- servlet、genericservlet、httpservlet之间的区别
- servlet、genericservlet、httpservlet之间的区别
- 使用AsyncTask从网上获取一个网页,在一个TextView中将其源代码显示出来
- 231. Power of Two
- 例题 2.7归并排序
- 检查型异常和非检查型异常
- SAP Backgroud job
- GenericServlet的讲解
- Cocos2d-x相关问题笔记
- CentOS php pgsql 扩展
- c++教程(十四:Dynamic memory)
- Android App整体架构设计的思考(一)
- 算法-第四版-练习1.2.2解答
- mysql 错误Row 349 was cut by GROUP_CONCAT()
- 温故知新(九):php错误处理机制
- 第四周项目-长方形面积