javax.servlet.Servlet其实就是一个接口规范,里面5个方法分别是
初始化方法:void init(ServletConfig config);init方法在启动时调用(在Servlet配置load-on-stsrtup设置为负数或不设置会在第一次调用才调用init())
获取ServletConfig:ServletConfig getServletConfig();返回ServletConfig对象,里面包含了我们在Web.xml里面包含了在定义Servlet里面配置的(initParam属性是设置的参数信息)
具体处理请求方法:void service(ServletRequest req, ServletResponse res);ServletRequest,ServletResponse也是接口
获取Servlet信息:String getServletInfo();此方法需要自己实现,默认返回null.
销毁方法(一般指关闭服务器):void destroy();
javax.servlet.ServletConfig 接口
String getServletName();用于获取Servlet的名字(Web.xml中定义的Servlet-name)
ServletContext getServletContext(); ServletContext代表应用本身(ServletContext其实就是Tomcat中AppplicationContextFacade,StandardContext的getServletContext()),既然ServletContext代表应用本身,ServletContext保存的参数就可以被当期应用所有的Servlet所共享。
String getInitParameter(String name);用于获取init-param配置的参数,参数为参数名称
Enumeration getInitParameterNames();用于获取所有init-param的集合
javax.servlet.GenericServlet
public abstract class GenericServlet implements Servlet, ServletConfig, java.io.Serializable{}
GenericServlet是Servlet的默认实现,主要做了三件事
1.实现了ServletConfig,我们可以直接调用里面的方法。
2.提供了无参的init();首先他实现了Servlet里面的void init(ServletConfig config);将config传给了内部变量config,
这个做法有三个作用1.可以再ServletConfig的接口方法中直接调用ServletConfig的相关方法2.在重新init方法时不需要在调用super.ini(config)3.这么做之后我们在写Servlet的时候只需要关心自己的初始化逻辑,而不用管config
3.提供log方法一个记录日志
void log(String msg) { getServletContext().log(getServletName() + ": "+ msg); }
,一个记录异常
void log(String message, Throwable t) { getServletContext().log(getServletName() + ": " + message, t); }
下一篇:HttpServlet笔记