Sevlet

作者: lxian2shell | 来源:发表于2018-07-11 09:29 被阅读0次

Servlet

init(ServletConfig config)
service(ServletRequest req, ServletResponse resp)
destroy()

ServletConfig

容器读取web.xml 生成Servlet的配置。可以获取init parameters (在<init-params></init-params> 中定义的参数)

String getServletName()
String getInitParameter(String var1)
Enumeration getInitParameterNames()
ServletContext getServletContext()

同时包含一个 ServletContext, 提供一个管理Application 级别的配置的界面

ServletContext

  • setAttribute/getAttribute 设置获取应用级别的属性
  • addFilter
  • addListener
    需要注意的是,根据标准ServletContext 在同一个应用的不同servlet 之间是共享的。实际tomcat 中也是这样实现的。

Filter

由Filter

init(FilterConfig filterConfig)
doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain)
destroy()

及FilterChain 共同构成

doFilter(ServletRequest request, ServletResponse response)

filterChain 调用相应的 filter, 将idx + 1, 将自己传入 filter.doFilter 中。filter.doFilter 中决定是否需要调用 filterChain.doFilter 继续将req, resp 传递下去。
FilterChain 维护了filter 的执行顺序,及最终filter 终点的servlet 调用。
Filter 则实现具体fitler 逻辑,可以在任意地方调用filterChain 将控制传递下去。

ServletRequest, ServletResponse

提供了一些获取request,response 的属性的方法。
提供了ServletInputStream,ServletOutputStream 令servlet 的实现者可以读取写入最下面的网络连接。

Servlet小结

提供了一系列的接口使得容器环境可以向servlet 传入配置,控制servlet的生命周期。
通过ServletRequest 和 ServletResponse 提供了ServletInputStream,ServletOutputStream 让servlet 来读入写出数据,封装了底层的网络实现。

相关文章

网友评论

      本文标题:Sevlet

      本文链接:https://www.haomeiwen.com/subject/tqeuuftx.html