jsp_自动加载与Config对象

1: 无参数init方法
    有参数的init方法
        这个方法是我们servlet生命周期的方法, 它需要被tomcat来调用
    无参数的init方法
        这个方法是为程序员准备的,我们可以来重写这个无参数的init方法,在里边定义我们想要执行的初始化代码,而不需要去重写那个有参数的init方法了,(因为tomcat在调用有参数的init方法里边会调用这个无参数的init方法)



2: Servlet自动加载
    1): 因为第一次访问需要执行构造方法与init方法,如果init方法中有比较多的初始化代码需要执行时
        这时用户第一次访问时的响应则会比较慢
        这里我们可以考虑把构造方法与init方法的执行时间放到用户访问前(可以使用servlet的自动加载)
    2): 使用自动加载
        servlet自动加载则就是在服务器启动加载web应用时就创建servlet对象与调用init方法
        可以在servlet配置中添加一个<load-on-startup>
        如: <servlet>
                <servlet-name>LoadonStartupDemo1</servlet-name>
                <servlet-class>com.tz.servlet.demo.LoadonStartupDemo1</servlet-class>
                <load-on-startup>9</load-on-startup>  
            </servlet>
    3): servlet自动加载的优先级
        <load-on-startup>9</load-on-startup>  
        如果里边的数字越大,则它的优先级越小
    4): 在@WebServlet注解中配置自动加载
        如: @WebServlet(
                urlPatterns = "/loadonStartupDemo1",
                loadOnStartup = 9
            )



3: Servlet线程安全问题
    1): servlet具有单实例多线程的特点,当多个线程访问了一个共享数据时(如: servlet的成员变量)则会出现线程安全问题
    2): 通过synchronized关键字可以解决
        synchronized(){}把要使用到共享数据的代码放到synchronized代码块中就行
    ps: 如果servlet中使用了成员变量,就一定要先考虑下线程安全问题(尽可能的不要在servlet中定义成员变量)



4: ServletConfig对象
    1): 创建时期
        ServletConfig对象在创建完Servlet对象之后,在调用init方法之前被创建
        并且在init方法时会把这个config对象传入进去
    2): 怎么获取 ServletConfig对象(可以在init方法中来获取)
        由GenericServlt类已经给我们实现了init方法,并且给我们提供一个getServletConfig方法来获取ServletConfig对象
        所以我们可以直接在servlet中通过getServletConfig方法来获取这个对象(如: this.getServletConfig)
    3): ServletConfig对象
        可以用于获取加载servlet的初始化参数
    4): Servlet的初始化参数配置在(在web.xml文件中)
        <servlet>
            <servlet-name>ConfigDemo1</servlet-name>
            <servlet-class>com.tz.servlet.config.ConfigDemo1</servlet-class>
            <!-- 配置servlet的初始化参数 -->
            <init-param>
                <param-name>user</param-name>
                <param-value>root</param-value>
            </init-param>
            <init-param>
                <param-name>password</param-name>
                <param-value>123</param-value>
            </init-param>
        </servlet>
    5): Servlet的初始化参数配置(在WebServlet注解中配置)
        @WebServlet(
            urlPatterns = {"/configDemo1","/abc"},
            initParams = {
                @WebInitParam(name="user",value="root"),
                @WebInitParam(name="password",value="123")
            }
        )
    6): 核心方法
        getInitParameter(String name);      根据指定参数名获取参数值 
        getInitParameterNames();            获取所有参数名
        getServletContext();                获取一个ServletContext对象(servlet的上下文对象)
        getServletName();                   获取servlet的名称





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值