• Servlet——概述、实现方式、生命周期、ServletConfig类


    Servlet类

    1.什么是Servlet
        Servlet(Server applet)服务器的小程序, Servlet是JavaWeb的三大组件之一,它属于动态资源, 也是JavaEE中的一个规范。Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要进行下面三步,实现动态页面输出.
            1.接收请求数据;
            2.处理请求
            3.完成响应
        Servlet必须实现javax.servlet.Servlet接口
    

    实现Servlet的方式

    1.实现Servlet有三种方式: 
        1.实现javax.servlet.Servlet接口
        2.继承javax.servlet.GenericServlet类
        3.继承javax.servlet.httpServlet类
    2.创建一个MyServlet类实现javax.servlet.Servlet接口
    

    public class MyServlet implements Servlet {

    /*
    * 它是生命周期方法
    * 它会在Servlet对象创建之后马上执行,并只执行一次
    */
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("init()...");
    }
    
    /*
     * 它是生命周期方法
     * 它会被调用多次,每次处理请求都是在调用这个方法!
     * */
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("service()...");
    }
    
    /*
    * 它是生命周期方法
    * 它会在Servlet被销毁之前调用,并且它只会被调用一次!
    * */
    @Override
    public void destroy() {
        System.out.println("destroy()...");
    
    }
    
    /*
    * 可以用来获取Servlet的配置信息
    * */
    @Override
    public ServletConfig getServletConfig() {
        System.out.println("getServletConfig()...");
        return null;
    }
    
    /*
    * 获取Servlet的信息
    * */
    @Override
    public String getServletInfo() {
        System.out.println("getServletInfo()...");
        return null;
    }
    

    }
    3.步骤二:在web.xml中配置Servlet
    1.如何让浏览器访问Servlet, 需要给Servlet指定一个Servlet路径.
    2.在web.xml中配置

    firstServlet
    com.sunny.servlet.MyServlet

    firstServlet /MyServlet

    三、Servlet的生命周期

    1.void init (ServletConfig servletConfig)初始化方法
        1.如果有构造器,会先调用构造方法(优先于init)
        2.当Servlet被创建的时候执行init方法,且执行一次
        3.默认情况下,第一次被访问时,Servlet被创建
        4.可以在web.xml中servlet标签下配置Servlet的创建时间
            *<load-on-startup>负数</load-on-startup>第一次访问时创建
            *<load-on-startup>正数</load-on-startup>服务器启动时创建
        5.因为init方法只被执行一次,所以一个Servlet在内存中只存在一个对象,Servlet是单例. 多个用户同时访问时,可能存在线程安全问题。
            *解决:不要在Servlet类中定义成员
    2.void service (ServletRequest servletRequest, ServletResponse servletResponse)方法
        每当访问Servlet时,Servlet方法都会被调用一次
    3.void destroy()销毁方法
        1.Servlet被销毁时执行,服务器关闭时,Servlet被销毁
        2.只有服务器正常关闭时,才会执行destory方法
        3.destory方法在Servlet被销毁之前执行,一般用于释放资源
            注意:Servlet类由我们编写,但对象由服务器创建,并且由服务器来调用对应的方法.
    

    ServletConfig类

    1.ServletConfig的作用
        首先一个ServletConfig类对应着一段web.xml中配置的Servlet信息;也就是说我们配置的Servlet信息都会被Tomcat解析后,将配置信息的数据保存在ServletConfig类中.所以一个ServletConfig类只对应一段Servlet信息.
    2.ServletConfig中的方法
        1.String getServletName(): 获取<servlet-name>的内容
        2.ServletContext getServletContext():获取Servlet上下文对象
        3.String getInitParameter(String name): 通过名称获取指定初始化参数的值
        4.Enumeration getInitParameterNames(): 获取所有初始化参数的名称
            首先在web.xml的servlet标签中配置一些初始化参数要使用到:
    
    name ZYGui
  • 相关阅读:
    死磕 java集合之TreeMap源码分析(二)- 内含红黑树分析全过程
    死磕 java集合之TreeMap源码分析(一)- 内含红黑树分析全过程
    死磕 java集合之WeakHashMap源码分析
    死磕 java集合之LinkedHashMap源码分析
    Redis的持久化——RDB
    Redis常见配置redis.conf
    Redis的数据类型及相关操作命令
    django-Ajax发送POST请求-csrf跨站请求的三种方式
    Python基础
    RvmTranslator6.0
  • 原文地址:https://www.cnblogs.com/linjing111/p/12776143.html
Copyright © 2020-2023  润新知