• 用ServletContext读取.properties文件


    在这里主要介绍ServletContext怎么从.properties文件中用键得到值的。

    ServletContext读取的.properties文件一般放在的位置有:1直接放在WebRoot下面.2.放在WebRoot下面的某个文件夹下面.3.放在WEB-INF下面某个文件夹的下面。

    特别注意不要把.properties文件直接放在WEB-INF下面。(因为这样取得的结果是null)

    下面这张图中的红色边框的矩形就是上述的几种位置:

    a.properties  、b.properties 、c.properties、 d.properties文件的内容都为如下所示:

    sixi=town
    rapeFlower=ouyangfeng

    a.properties  、b.properties 、c.properties、 d.properties文件的代码如下所示:

     1 package com.qls.counter;
     2 /**
     3  * 用ServletContext读取配置a.properties  、b.properties 、
     4  * c.properties、 d.properties
     5  * 并证明不要把文件直接写在WEB-INF下,可以写在WEB-INF下面的某个文件夹的下面。
     6  */
     7 import java.io.IOException;
     8 import java.io.InputStream;
     9 import java.io.PrintWriter;
    10 import java.util.Properties;
    11 
    12 import javax.servlet.ServletException;
    13 import javax.servlet.http.HttpServlet;
    14 import javax.servlet.http.HttpServletRequest;
    15 import javax.servlet.http.HttpServletResponse;
    16 
    17 public class Test extends HttpServlet {
    18 
    19     
    20     public void doGet(HttpServletRequest request, HttpServletResponse response)
    21             throws ServletException, IOException {
    22 
    23         response.setContentType("text/html;charset=utf-8");
    24         PrintWriter out = response.getWriter();
    25         //获取输入流:
    26         InputStream in = this.getServletConfig().getServletContext().getResourceAsStream("/a.properties");
    27         InputStream in2 = this.getServletContext().getResourceAsStream("/WEB-INF/b.properties");
    28         InputStream in3 = this.getServletContext().getResourceAsStream("/chenzhen/d.properties");
    29         InputStream in4 = this.getServletContext().getResourceAsStream("/WEB-INF/ouyangfeng/c.properties");
    30         //创建Properties
    31         Properties prop=new Properties();
    32         //加载输入流
    33         prop.load(in);//把in2 in3  in4依次带入进去验证。
    34         out.println("sixi="+prop.getProperty("sixi"));
    35         out.println("<br/>");
    36         out.println("rapeFlower="+prop.getProperty("rapeFlower"));
    37     }
    38 
    39     
    40     public void doPost(HttpServletRequest request, HttpServletResponse response)
    41             throws ServletException, IOException {
    42 
    43         response.setContentType("text/html;charset=utf-8");
    44         PrintWriter out = response.getWriter();
    45         this.doGet(request, response);
    46     }
    47 
    48 }/*Output:
    49 这是in in3 in4的输出结果
    50 sixi=town 
    51 rapeFlower=ouyangfeng
    52 in2的输出结果是:
    53 sixi=null 
    54 rapeFlower=null
    55 **///:~

    从上面的输出结果可以证明本文一开始所说的内容,不要把文件直接放在WEB-INF下面。

    至于怎么从ServletContext读取配置文件可以总结为四句话:获取输入流、 创建属性、 加载输入流、 获得属性值。

  • 相关阅读:
    golang框架对比Revel and Beego
    Gin框架系列02:路由与参数
    用cp命令拷贝文件,源目录后带不带斜杠的区别
    Isilon Gen6的换盘步骤
    如何在同一行里执行多个linux命令?
    KB,MB,GB,TB,PB,EB,ZB,YB,BB
    Isilon的WebUI上指定跨时区时间的小问题
    用Powershell强制同步Windows主机与Internet time server的时间
    Remote Desktop突然不能用了 “This could be due to CredSSP encryption oracle remediation”
    打开KVM Console的一些注意事项
  • 原文地址:https://www.cnblogs.com/1540340840qls/p/6185518.html
Copyright © 2020-2023  润新知