JavaWeb学习笔记----Servlet的ServletConfig对象和ServletContext对象的使用

来源:互联网 发布:网络推广软件哪家好 编辑:程序博客网 时间:2024/06/05 03:22

web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"         version="3.1">    <!--配置当前的WEB应用的初始化参数-->    <context-param>        <param-name>driver</param-name>        <param-value>com.mysql.jdbc.Driver</param-value>    </context-param>    <context-param>        <param-name>jdbcUrl</param-name>        <param-value>jdbc:mysql:///test</param-value>    </context-param>    <!--配置Servlet-->    <servlet>        <!--Servlet注册的名字-->        <servlet-name>helloWorld</servlet-name>        <!--Servlet的全类名-->        <servlet-class>cn.limbo.servlet.HelloWorld</servlet-class>        <!--            指定Servle被创建的时机 ,若为负数,则在第一次请求被创建            若>=0,则在当前WEB应用中被Servlet容器加载的时候创建实例。            且值越小越先被创建        -->        <init-param>            <param-name>user</param-name>            <param-value>root</param-value>        </init-param>        <init-param>            <param-name>password</param-name>            <param-value>123456</param-value>        </init-param>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <!--需要和某一个Servlet节点的的servlet-name子节点的文本一致-->        <servlet-name>helloWorld</servlet-name>        <!--映射具体访问的路径: /表示当前WEB应用的根目录-->        <url-pattern>/hello</url-pattern>    </servlet-mapping></web-app>
HelloWorld.java

package cn.limbo.servlet;import javax.servlet.*;import java.io.IOException;import java.io.InputStream;import java.util.Enumeration;/** * Created by Limbo on 16/7/30. */public class HelloWorld implements Servlet {    @Override    public void init(ServletConfig servletConfig) throws ServletException {        System.out.println("init");        String user = servletConfig.getInitParameter("user");        String password = servletConfig.getInitParameter("password");        System.out.println("user: " + user + " password: " + password);        Enumeration<String> names = servletConfig.getInitParameterNames();        while (names.hasMoreElements()) {            String name = names.nextElement();            String value = servletConfig.getInitParameter(name);            System.out.println("^^" + name + " : " + value);        }        //获取ServletContext对象,可以获取到当前web应用的各个信息        ServletContext context = servletConfig.getServletContext();        //1.获取当前WEB应用的初始化参数        //区别:ServletContext可以被每一个Servlet访问到从而去参数,而ServletConfig只能为当前的servlet访问到,并取配好的参数        String driver = context.getInitParameter("driver");        System.out.println("driver-->" + driver);        Enumeration<String> names2 = context.getInitParameterNames();        while(names2.hasMoreElements())        {            String name = names2.nextElement();            String value = context.getInitParameter(name);            System.out.println("name-->" + name + " : " + value);        }        //获取当前WEB应用的某一个文件在服务器上的绝对路径,而不是部署前的路径        String realPath = context.getRealPath("/");        System.out.println(realPath);        //获取当前WEB应用的名称        String contextPath = context.getContextPath();        System.out.println(contextPath);                //获取当前WEB应用的某一文件对应的输入流        //String resource = context.getResourceAsStream("/"); // "/" 的意思是web应用的根目录                ClassLoader classLoader = getClass().getClassLoader();        InputStream in = classLoader.getResourceAsStream("jdbc.properties");        System.out.println("1. " + in );                InputStream in2 = context.getResourceAsStream("/WEB-INF/classes/jdbc.properties");        System.out.println("2. " + in2);    }    @Override    public ServletConfig getServletConfig() {        System.out.println("ServletConfig");        return null;    }    @Override    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {        System.out.println("Service");    }    @Override    public String getServletInfo() {        System.out.println("getServletInfo");        return null;    }    @Override    public void destroy() {        System.out.println("destroy");    }    public HelloWorld() {        System.out.println("HelloWorld Constructor");    }}



0 0
原创粉丝点击