看透SpringMVC读书笔记-Servlet篇(1)

看透SpringMVC读书笔记-Servlet篇(1)

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笔记