看透SpringMVC读书笔记-Servlet重点总结

 

 

文中大部分内容来自:韩路彪 看透Spring MVC:源代码分析与实践,一本不错的入门书籍。

看透SpringMVC读书笔记-Servlet重点总结

Servlet

Servlet是Server+Applet的缩写(意为:服务器应用),它是一套解接口规范,里面定义的多个方法

看透SpringMVC读书笔记-Servlet重点总结

 

init()是初始化方法,只会调用一次;(当load-on-startup设置为负数或者不设置时会在Servlet第一次用到时才被调用)

getServletConfig()是获取servlet配置,我们在web.xml中配置init-param,与指定springMVC中servlet的配置等。

看透SpringMVC读书笔记-Servlet重点总结

 

server()用于具体处理一个请求。

getServletInfo()用于返回servlet的相关信息,例如作者balabala什么的,需要自己实现,返回字符串

destory()要用于在Servlet销毁(一般指关闭服务器)时释放一些资源,也只会调用一次.

ServletConfig

看透SpringMVC读书笔记-Servlet重点总结

 

getServletName用于获取Servlet的名字,也就是我们在web.xml中定义的servlet-name.

getInitParameter方法用于获取init-param配置的参数.

getInitParameterNames用于获取配置的所有init-param的名字集合.

getServletContext非常重要,它的返回值ServletContext代表的是我们这个应用本身(既然ServletContext代表应用本身,那么ServletContext里边设置的参数就可以被当前应用的所有Servlet共享了。我们做项目的时候都知道参数可以保存在Session中,也可以保存在Application中,而后者很多时候就是保存在了ServletContext中)

GenericServlet

GenericServlet是Servlet的默认实现,主要做了三件事:①实现了ServletConfig接口,我们可以直接调用ServletConfig里面的方法;②提供了无参的init方法;③提供了log方法。

HttpServlet

HttpServlet是用HTTP协议实现的Servlet的基类,写Servlet时直接继承它就可以了,不需要再从头实现Servlet接口,我们要分析的Spring MVC中的DispatcherServlet就是继承的HttpServlet。既然HttpServlet是跟协议相关的,当然主要关心的是如何处理请求了,所以HttpServlet主要重写了service方法。在service方法中首先将ServletRequest和Servlet-Response转换为了HttpServletRequest和HttpServletResponse,然后根据Http请求的类型不同将请求路由到了不同的处理方法.

另外ServletContext中非常常用的用法就是保存Application级的属性,这个可以使用setAttribute来完成

看透SpringMVC读书笔记-Servlet重点总结

 

需要注意的是,这里设置的同名Attribute并不会覆盖initParameter中的参数值,它们是两套数据,互不干扰。ServletConfig不可以设置属性。