servlet生命周期、servletconfig、servletcontext、导入项目

来源:互联网 发布:wap积分兑换商城源码 编辑:程序博客网 时间:2024/06/03 17:25

servlet的生命周期:

/*    Servlet的生命周期:Servlet对象从被创建到被销毁的过程!    当我们第一次访问Servlet时,调用方法执行顺序如下:    1.构造器    2.init()    3.service()    再次刷新访问时,只会调用    service()方法    当项目卸载时,调用    destroy()方法*/

==========================

/*    Servlet的生命周期方法    1.构造器    构造器用来创建Servlet的对象,Servlet第一次接收请求时调用,只调用了一次。    构造器只调用了一次,说明Servlet是单例,以多线程形式去调用service()方法    servlet不是线程安全,所以尽量不要在service()方法中操作全局变量。     2.init()     构造器被调用后紧接着被调用,init方法用来对Servlet进行初始化操作,只调用了一次。     3.service()     每次处理请求的时候service()方法都会被调用,会被调用多次。      4.destroy()      web项目卸载时调用,用来在对象被销毁前做一些收尾工作。只会调用一次。*/

===============================
HelloServlet.java

public class HelloServlet implements Servlet {    public HelloServlet() {        System.out.println("构造器...");    }    @Override    public void init(ServletConfig config) throws ServletException {        System.out.println("init方法被调用。。。");    }    @Override    public ServletConfig getServletConfig() {        System.out.println("getServletConfig方法被调用。。。");        return null;    }    /**     * ServletRequest 封装的是浏览器发送给服务器请求报文     * ServletResponse 封装的是服务器发送给浏览器响应报文     */    @Override    public void service(ServletRequest req, ServletResponse res)            throws ServletException, IOException {        /*//向控制台输出一个语句        System.out.println("你好! Servlet");        //给浏览器发送一个信息        //通过response对象获取一个输出流        PrintWriter out = res.getWriter();        //通过out可以向浏览器发送信息        out.print(new Date());*/        System.out.println("service方法被调用。。。");    }    @Override    public String getServletInfo() {        System.out.println("getServletInfo方法被调用。。。");        return null;    }    @Override    public void destroy() {        System.out.println("destroy方法被调用。。。");    }}

==========================
配置web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns="http://java.sun.com/xml/ns/javaee"    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"    id="WebApp_ID" version="2.5">    <servlet>        <servlet-name>HelloServlet</servlet-name>        <servlet-class>com.atguigu.servlet.HelloServlet</servlet-class>    </servlet>    <servlet-mapping>        <servlet-name>HelloServlet</servlet-name>        <url-pattern>/HelloServlet</url-pattern>    </servlet-mapping></web-app>

=====================
servletconfig:

/**         * 一个Servlet都有他唯一对应的ServletConfig         *          * ServletConfig         * 代表:封装的就是Servlet的配置信息,封装的就是servlet标签中的聂荣         * 获取:该对象由服务器创建,最终会作为参数传到init方法中,我们可以在这个方法中直接使用         * 功能:         *  【1】 获取servlet的别名         *  【2】获取当前Servlet的初始化参数         *  【3】获取ServletContext对象         *      <init-param>                    <param-name>user</param-name>                    <param-value>root</param-value>                </init-param>         */        //【1】 获取servlet的别名        String servletName = config.getServletName();        //输出servletName        System.out.println("别名:"+servletName);        //2.获取当前Servlet的初始化参数        String user = config.getInitParameter("user");        System.out.println("user: "+user);        //3.获取ServletContext对象        // 我们web应用中所有信息都封装在ServletContext对象中,每一个web应用都对应着一个唯一的ServletContext        ServletContext context = config.getServletContext();        String url = context.getInitParameter("url");        System.out.println("AServlet :"+url);

==========================
servletcontext:

        /**         * ServletContext         * 代表:代表整个web应用,每一个web应用都有他唯一对应ServletContext对象,该对象在项目启动时创建,在项目卸载销毁         * 获取:通过ServletConfig获取         * 功能:         *  【1】获取整个WEB应用的初始化参数         *      <context-param>                    <param-name>url</param-name>                    <param-value>http://www.atguigu.com</param-value>                </context-param>            【2】可以获取到资源的真实路径                虚拟路径:http://localhost:8080/08_WEB_Servlet/index.html                真实路径:资源在硬盘中的地址            【3】可以作为一个最大的域对象在不同的WEB资源之间共享数据。                application         */        //通过ServletConfig获取ServletContext        ServletContext context = this.getServletConfig().getServletContext();        //获取全局的初始化参数        String url = context.getInitParameter("url");        //System.out.println("url = "+url);        //获取index.html的真实路径(物理路径)        //主要用于做上传和下载        String realPath = context.getRealPath("/hello.html");        System.out.println(realPath);

===========================
导入项目2个步骤:
步骤1:
这里写图片描述

这里写图片描述

步骤2:

这里写图片描述

这里写图片描述