zoukankan      html  css  js  c++  java
  • 理解Servlet

    题记:框架横行,似乎已经忘记JavaWeb最基础Servlet是如何工作的,这也是为什么要写这篇文章。

    Servlet是Java语言应用到Web的扩展技术,是运行在Web应用服务器上的Java程序。与普通的Java程序不同的是它可以对Web浏览器或其他HTTP客户端程序发送的请求进行处理。是位于服务器内部的服务器端的Java应用程序。

    核心API类关系

     

    Servlet接口:

    public void init(ServletConfig config);Servlet初始化后,Servlet容器调用此方法来完成初始化工作。

    public void service(ServletRequest request, ServletResponse response)此方法用户处理客户端请求

    public void destroy();当Servlet对象应该从Servlet容器移除的时,容器调用此方法,释放资源。

    public ServletConfig getServletConfig();用于获取Servlet对象的配置信息,返回ServletConfig对象。

    public String getServletInfo(); 返回有关Servlet信息,纯文本的字符串,如作者,版本等。

    GenericServlet抽象类

    这个类实现了除Service()外的其他所有方法。

    HttpServlet抽象类

    对GenericServlet类进行了泛化,实现了Service()方法。

    HttpServletRequest接口和HttpServletReponse接口

    接口方法省略

     ServletConfig接口

    这个接口封装了Servlet初始化参数信息,接口方法已经由GenericServlet抽象类实现

    public String getInitParameter(String name)此方法返回String类型名称为name的初始化参数

    public Enumeration getInitParameterNames()获取所有初始化参数名的枚举集合

    public ServletContext getServletContext()用于获取Servlet上下文对象

    public String getServletName()返回Servlet对象的实例名

    Servlet生命周期

    1.初始化阶段

    1.1客户请求Servlet服务或当Web服务启动的时候,容器环境加载一个Servlet类

    1.2Servlet容器创建一个ServletConfig对象,用于配置Servlet初始化信息

    1.3Servlet容器创建一个Servlet对象

    1.4Servlet容器调用Servlet对象的init()方法进行初始化,并且给init()方法传入一个ServletConfig对象。

    2运行时阶段

    随时响应客户端请求,收到要求访问特定Servlet的客户请求后,容器针对这个请求创建ServletRequest对象和ServletResponse对象,然后调用Servlet对象的service()方法,容器把Servlet生成的响应结果发送个客户后,容器就会销毁ServletRequest对象和ServletResponse对象。

    3销毁阶段

    Web容器被终止时,Servlet容器会调用Web应用中的所有Servlet对象的destroy()方法,然后销毁这些Servlet对象。

     Servlet过滤器

    filter接口

    定义过滤器需要实现此接口

    pubic void init(FilterConfig filterConfig) 过滤器的初始化方法,容器调用此方法完成过滤的初始化操作。

    public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)与Servlet的service()方法类似,请求及响应交给过滤器时,过滤器调用此方法处理。

    FilterChain接口

    接口由容器实现

    void doFilter(ServletRequest request,ServletResponse response) throws IOException,ServletException 将请求或响应交给下一个过滤器对象。

    FilterConfig接口

    此接口由容器实现,获取过滤器初始化期间的参数信息

    public String getFilterName() 返回过滤器的名称

    public String getInitParameter(String name) 返回初始化名称为name的参数值

    public Enumeration getInitParamterNames() 返回初始化参数名的枚举集合

    public ServletContext getServletContext() 返回Servlet的上下文对象

    参考:

    http://www.liechuchina.com/

  • 相关阅读:
    放大图 带回弹效果
    用recyclerview实现对话(通过接口实现)
    java 问号表达式
    recyclerview的使用
    我遇到的报错信息整理
    横竖屏切换
    NOIP 2017提高组自测 奶酪
    小蝌蚪找妈妈 牛客
    牛客练习赛50 C tokitsukaze and Soldier
    洛谷P1630 求和
  • 原文地址:https://www.cnblogs.com/mingluosunshan/p/3933120.html
Copyright © 2011-2022 走看看