GenericServlet 类
GenericServlet1、GenericServlet概述GenericServlet是Servlet接口的实现类,我们可以通过继承GenericServlet来编写自己的Servlet。下面是GenericServlet类的源代码:GenericServlet.javapublic abstract class GenericServle...
·
GenericServlet 1、GenericServlet概述 GenericServlet是Servlet接口的实现类,我们可以通过继承GenericServlet来编写自己的Servlet。 下面是GenericServlet类的源代码: GenericServlet.java public abstract class GenericServlet implements Servlet, ServletConfig, Serializable { private static final long serialVersionUID = 1L; private transient ServletConfig config; public GenericServlet() {} @Override public void init(ServletConfig config) throws ServletException { this.config = config; this.init(); } [这个方法是GenericServlet自己的方法,而不是从Servlet继承下来的。] public void init() throws ServletException {} @Override public abstract void service(ServletRequest req, ServletResponse res) throws ServletException, IOException; @Override public ServletConfig getServletConfig() { return config; } @Override public String getServletInfo() { return ""; } @Override public void destroy() {} @Override public String getInitParameter(String name) { return getServletConfig().getInitParameter(name); } @Override public Enumeration<String> getInitParameterNames() { return getServletConfig().getInitParameterNames(); } @Override public ServletContext getServletContext() { return getServletConfig().getServletContext(); } @Override public String getServletName() { return config.getServletName(); } public void log(String msg) { getServletContext().log(getServletName() + ": " + msg); } public void log(String message, Throwable t) { getServletContext().log(getServletName() + ": " + message, t); } } 2、GenericServlet的init()方法 在GenericServlet中,定义了一个ServletConfig config实例变量,并在init(ServletConfig)方法中 把参数ServletConfig赋给了实例变量。然后在该类的很多方法中使用了实例变量config。如果子类覆盖了 GenericServlet的init(StringConfig)方法,那么this.config=config这一条语句就会被覆盖了,也就是说 GenericServlet的实例变量config的值为null,那么所有依赖config的方法都不能使用了。如果真的希望完成 一些初始化操作,那么去覆盖GenericServlet提供的init()无参方法,它是没有参数的init()方法, 它会在init(ServletConfig)方法中被调用。 3、实现了ServletConfig接口 GenericServlet还实现了ServletConfig接口,所以可以直接调用getInitParameter()、getServletContext() 等ServletConfig的方法。
更多推荐
已为社区贡献2条内容
所有评论(0)