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