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
  • 相关阅读:
    欧拉回路 定理
    UESTC 1087 【二分查找】
    POJ 3159 【朴素的差分约束】
    ZOJ 1232 【灵活运用FLOYD】 【图DP】
    POJ 3013 【需要一点点思维...】【乘法分配率】
    POJ 2502 【思维是朴素的最短路 卡输入和建图】
    POJ 2240 【这题貌似可以直接FLOYD 屌丝用SPFA通过枚举找正权值环 顺便学了下map】
    POJ 1860【求解是否存在权值为正的环 屌丝做的第一道权值需要计算的题 想喊一声SPFA万岁】
    POJ 1797 【一种叫做最大生成树的很有趣的贪心】【也可以用dij的变形思想~】
    js 实现slider封装
  • 原文地址:https://www.cnblogs.com/loaderman/p/6415470.html
Copyright © 2011-2022 走看看