zoukankan      html  css  js  c++  java
  • Servlet生命周期及使用

    1. Servlet生命周期:5个阶段
    加载
    初始化: init() ,该方法会在 Servlet被加载并实例化的以后 执行
    服务 :service() ->doGet() doPost
    销毁 :destroy(), Servlet被系统回收时执行
    卸载


    init():
    a.默认第一次访问 Servlet时会被执行 (只执行这一次)
    b.可以修改为 Tomcat启动时自动执行
    i.Servlet2.5: web.xml
    <servlet>
    ...
    <load-on-startup>1</load-on-startup>
    </servlet>
    其中的“1”代表第一个。
    ii.Servlet3.0
    @WebServlet( value="/WelcomeServlet" ,loadOnStartup=1 )


    service() ->doGet() doPost :调用几次,则执行几次
    destroy():关闭tomcat服务时,执行一次。


    2 Servlet API : 由两个软件包组成: 对应于HTTP协议的软件包、对应于除了HTTP协议以外的其他软件包
    即Servlet API可以适用于 任何 通信协议。
    我们学习的Servlet,是位于javax.servlet.http包中的类和接口,是基础HTTP协议。

    3.Servlet继承关系

    ServletConfig:接口
    ServletContext getServletContext():获取Servlet上下文对象 application
    String getInitParameter(String name):在当前Servlet范围内,获取名为name的参数值(初始化参数)

    a.ServletContext中的常见方法(application):
    getContextPath():相对路径
    getRealPath():绝对路径
    setAttribute() 、getAttribute()
    --->
    String getInitParameter(String name);在当前Web容器范围内,获取名为name的参数值(初始化参数)

    Servlet3.0方式 给当前Servlet设置初始值:
    @WebServlet( .... , initParams= {@WebInitParam(name="serveltparaname30",value="servletparavalue30") } )
    注意,此注解只 隶属于某一个具体的Servlet ,因此无法为 整个web容器设置初始化参数 (如果要通过3.0方式设置 web容器的初始化参数,仍然需要在web.xml中设置)

    HttpServletRequest中的方法:(同request),例如setAttrite()、getCookies()、getMethod()
    HttpServletResponse中的方法:同response

    Servlet使用层面:

    Eclipse中在src创建一个Servlet,然后重写doGet() doPost()就可以 (doGet() doPost()只需要编写一个)。

  • 相关阅读:
    java编程规范
    Servlet生命周期
    BBS
    Hibernate主键自增策略
    MyBatis举例以及连接数据库过程
    myBatis框架的配置部分
    持续集成
    2017-02-23 .NET Core Tools转向使用MSBuild项目格式
    记录表TABLE中 INDEX BY BINARY_INTEGER 的作用
    什么是 BIND 变量?
  • 原文地址:https://www.cnblogs.com/deepend/p/ServletAPI.html
Copyright © 2011-2022 走看看