• ServletConfig和ServletContext对象


    1由于一个WEB应用程序中的所有Servlet都共享同一个对应的ServletContext对象,所以ServletContext对象被称为application对象。是当前web应用的大管家,可以获取到web应用的各个信息

    package servlet;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Enumeration;
    
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class HelloServlet extends HttpServlet {
    
        /**
         * Constructor of the object.
         */
        public HelloServlet() {
            super();
            System.out.println("constructor");
        }
    
        public void init(ServletConfig servletconfig) throws ServletException {
            // ServletConfig常用方法
            String v = servletconfig.getInitParameter("user:");
            // String v = this.getInitParameter("user:");
            // //也行,因为HttpServlet是ServletConfig的实现类,所以可以用this调用该方法
            System.out.println("method1:" + v);
            System.out.println("init");
    
            // Enumeration<String> en = this.getInitParameterNames();
            Enumeration<String> en = servletconfig.getInitParameterNames();
            while (en.hasMoreElements()) {
                String names = en.nextElement();
                String values = servletconfig.getInitParameter(names);
                System.out.println(names + "-->" + values);
            }
            System.out.println("");
            // ServletContext常用方法
            ServletContext sct = servletconfig.getServletContext();
            String svalue = sct.getInitParameter("driver");
            System.out.println(svalue);
            // 获取当前文件在web服务器上的绝对路径
            String str = sct.getRealPath("/file1.txt");
            System.out.println(str);
            // 获取当前web应用名称
            String conp = sct.getContextPath();
            System.out.println(conp);
            try {
                InputStream is = sct
                        .getResourceAsStream("/WEB-INF/classes/xml.properties"); // 路径是相对当前web应用的路径
                System.out.println(is);
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            System.out.println("doGet");
        }
    
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            System.out.println("dopost");
        }
    
        public void destroy() {
            super.destroy(); // Just puts "destroy" string in log
            // Put your code here
            System.out.println("destroy");
        }
    
    }
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
        <context-param>
               <param-name>driver</param-name>
               <param-value>jdbc.odbc</param-value>
        </context-param>
        <servlet>
            <servlet-name>HelloServlet</servlet-name>
            <servlet-class>servlet.HelloServlet</servlet-class>
            <!--设置局部初始化参数  -->
            <init-param>
                <param-name>user:</param-name>
                <param-value>wuyj</param-value>
            </init-param>
            <init-param>
                <param-name>password:</param-name>
                <param-value>123</param-value>
            </init-param>
            <load-on-startup>3</load-on-startup>
    
        </servlet>
    
        <servlet-mapping>
            <servlet-name>HelloServlet</servlet-name>
            <url-pattern>/servlet/HelloServlet</url-pattern>
        </servlet-mapping>
        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    </web-app>

    结果:

    constructor
    method1:wuyj
    init
    password:-->123
    user:-->wuyj

    jdbc.odbc
    C:Program FilesApache Software FoundationTomcat 6.0webappssdffile1.txt
    /sdf
    java.io.FileInputStream@1a3551c

  • 相关阅读:
    bootstrap基本用法
    Maven学习笔记(一)
    Tomcat的安装以及基本配置
    jQuery实现用户头像裁剪插件cropbox.js
    position的用法与心得
    ES6新特性学习(一)
    jQuery mobile 滑动打开面板
    vue-day05----自定义指令(directive)、render和template的区别、mixin混入、Vue.use()、Vue.extend()、Vue.filter()、vue中的数据流向
    我的一个React路由嵌套(多级路由),路由传参之旅
    vue04----watch、slot、响应式原理、set、vue脚手架(vue-cli)、单页面应用和多页面应用、单页面开发首屏加载过慢,白屏如何缓解
  • 原文地址:https://www.cnblogs.com/yjtm53/p/4196199.html
Copyright © 2020-2023  润新知