java - 属性文件不起作用

标签 java jsp servlets properties nullpointerexception

我正在尝试寻找一种方法,如何在我的 Java Servlet(扩展 http-servlet)中使用属性文件。我已经尝试使用 ClassLoader#getResourceAsStream()ServletContext#getResourceAsStream()。但无论我在做什么,都没有任何效果,并且总是出现 NullPointerException

database.properties 文件:

Driver=org.postgresql.Driver
Protokoll=jdbc:postgresql://
Speicherort=localhost/
Datenbank=Ticketshop
User=postgres

代码:

p = new Properties();
p.load(getServletContext().getResourceAsStream("/WEB-INF/properties/database.properties"));
protokoll = p.getProperty("Protokoll");
speicherort = p.getProperty("Speicherort");
user = p.getProperty("User");
driver = p.getProperty("Driver");
password = p.getProperty("Password");
database = p.getProperty("Datenbank");

文件树:

Java Resources
  |-- src
     |-- login
        |-- Login.java
WebContent
  |-- WEB-INF
     |-- properties
        |-- database.properties

最佳答案

你为什么不使用ResourceBundle。使用起来非常简单。 将属性文件放在源文件夹中,以及

import java.util.MissingResourceException;
import java.util.ResourceBundle;

public class DatabaseConstantsAccessor
{
    // don't include .properties extension, just specify the name without extension
    private static final String BUNDLE_NAME = "database";

    private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);

    private ConstantsAccessor()
    {
    }

    public static String getString(String key)
    {
        try
        {
            return RESOURCE_BUNDLE.getString(key);
        }
        catch (MissingResourceException e)
        {
            return '!' + key + '!';
        }
    }
}

在你想访问属性的地方,使用下面的代码:

String driverString=DatabaseConstantsAccessor.getString("Driver");
Integer intProp=Integer.valueOf(DatabaseConstantsAccessor.getString("SomeIntProperty"));

关于java - 属性文件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15355664/

相关文章:

java - java-2 初始化方法中的 GenericServlet

java - Servlet 不工作 :HTTP Status 404

java - 存储上次登录时间戳

java - 如何确保写入csv完成?

java - 如何在 JSP 中迭代集合并在操作类中的对象中设置值

java - 列出 Web 应用程序中的 Urls

jquery - jplayer 在 ie8 中不工作,但在其他浏览器中工作正常

spring - 如何使用 Spring 将依赖项注入(inject) HttpSessionListener?

java - 在 "reference"或实例上同步

java - Spring Data 中用于分页的动态原生 Sql 查询