zoukankan      html  css  js  c++  java
  • ServletConfig对象的使用

    作用:

      * 获取Servlet的配置信息

      * 获取ServletContext对象

           *主要是用于加载servlet的初始化参数。在一个web应用可以存在多个ServletConfig对象(一个Servlet对应一个ServletConfig对象)


      接收ServletConfig对象


    创建时机: 在创建完servlet对象之后,在调用init方法之前创建。

    得到对象: 直接从有参数的init方法中得到!!!


    初始化参数配置:

    <servlet>
        <servlet-name>ConfigDemo</servlet-name>
        <servlet-class>com.loaderman.ConfigDemo</servlet-class>
        <!-- 初始参数: 这些参数会在加载web应用的时候,封装到ServletConfig对象中 -->
        <init-param>
            <param-name>path</param-name>
            <param-value>e:/b.txt</param-value>
        </init-param>
      </servlet>

    注意: servlet的参数只能由当前的这个sevlet获取!!!!


    ServletConfig的API:
                        java.lang.String getInitParameter(java.lang.String name)  根据参数名获取参数值
                        java.util.Enumeration getInitParameterNames()             获取所有参数
                        ServletContext getServletContext()                        得到servlet上下文对象
                        java.lang.String getServletName()                         得到servlet的名称

     示例代码:

    package com.loaderman.demo;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.Enumeration;
    
    public class TestServlet extends HttpServlet {
    
    
        
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
            response.setContentType("text/html;charset=utf-8");
    /**
     * 读取servlet的初始参数
     */
            String path = this.getServletConfig().getInitParameter("path");
    
            File file = new File(path);
            //读取内容
            BufferedReader br = new BufferedReader(new FileReader(file));
            String str = null;
            while( (str=br.readLine())!=null ){
                System.out.println(str);
            }
    
            //查询当前servlet的所有初始化参数
            Enumeration<String> enums = this.getServletConfig().getInitParameterNames();
            while(enums.hasMoreElements()){
                String paramName = enums.nextElement();
                String paramValue = this.getServletConfig().getInitParameter(paramName);
                System.out.println(paramName+"="+paramValue);
            }
            //得到servlet的名称
            String servletName = this.getServletConfig().getServletName();
            System.out.println(servletName);
        }
    }

    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_4_0.xsd"
             version="4.0">
        <!-- servlet的配置 -->
        <servlet>
            <!-- servlet的内部名称,自定义。尽量有意义 -->
            <servlet-name>mTestServlet</servlet-name>
            <!-- servlet的类全名: 包名+简单类名 -->
            <servlet-class>com.loaderman.demo.TestServlet</servlet-class>
            <!-- 初始参数: 这些参数会在加载web应用的时候,封装到ServletConfig对象中 -->
            <init-param>
                <param-name>path</param-name>
                <param-value>d:/b.txt</param-value>
            </init-param>
            <init-param>
                <param-name>BBB</param-name>
                <param-value>BBB's value</param-value>
            </init-param>
            <init-param>
                <param-name>CCCC</param-name>
                <param-value>CCCC's value</param-value>
            </init-param>
        </servlet>
    
    
        <!-- servlet的映射配置 -->
        <servlet-mapping>
            <!-- servlet的内部名称,一定要和上面的内部名称保持一致!! -->
            <servlet-name>mTestServlet</servlet-name>
            <!-- servlet的映射路径(访问servlet的名称) -->
            <url-pattern>/demotest</url-pattern>
        </servlet-mapping>
    </web-app>

    运行日志如下:

    测试学习中..
    path=d:/b.txt
    BBB=BBB's value
    CCCC=CCCC's value
    mTestServlet
  • 相关阅读:
    Effective C++ 学习笔记(12)
    Effective C++ 学习笔记(6)
    Effective C++ 学习笔记(13)
    Effective C++ 学习笔记(11)
    Effective C++ 学习笔记(10)
    (转)C++函数后加const的意义
    Effective C++ 学习笔记(14)
    Effective C++ 学习笔记(7)
    Effective C++ 学习笔记(9)
    Effective C++ 学习笔记(8)
  • 原文地址:https://www.cnblogs.com/loaderman/p/6415470.html
Copyright © 2011-2022 走看看