Как использовать файл свойства в jsp - программирование
Подтвердить что ты не робот

Как использовать файл свойства в jsp

Возможный дубликат:
Как загрузить файл .properties в jsp

Я пытаюсь использовать свой файл свойств в JSP, но он не работает нормально и выдает ошибку

Error: myproperties.properties (The system cannot find the file specified)

Здесь я пытаюсь получить доступ к моему файлу свойств:

<%
try
{
    FileInputStream fis = new FileInputStream("myproperties.properties");

    Properties p = new Properties();
    p.load(fis);
    String LogFileName = p.getProperty("NameOfLogFile");
    out.println(LogFileName);

}
catch (Exception e)
{// Catch exception if any
    out.println(e.getMessage());
}

Я попытался многими способами получить доступ к файлу свойств. Как это исправить?

4b9b3361

Ответ 1

создать файл test.properties в вашем пакете

pname=xyz
psurname=abc

создать файл jsp:

<%@ page language="java" import="java.util.*" %> 
<%@ page import = "java.util.ResourceBundle" %>
<% ResourceBundle resource = ResourceBundle.getBundle("test");
  String name=resource.getString("pname");
  String surname=resource.getString("psurname"); %>
  <%=name %>
 <%=surname%>

Ответ 2

JSP запускается в контейнере сервлета, поэтому его текущий рабочий каталог определяется контейнером. Обычно это каталог, в котором установлен контейнер, или его каталог bin. В любом случае это не то место, где вы хотите сохранить свой файл настраиваемых свойств.

Есть два типичных подхода, чтобы сделать то, что вам нужно.

Первый подход хорош, если ваш файл является частью вашего приложения, и вы никогда не меняете его при развертывании. В этом случае прочитайте его из ресурсов:

props.load(getClass().getResourceAsStream())

или даже лучше

props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream())

Второй подход хорош, если вы хотите изменить файл свойств в среде развертывания. В этом случае поместите его где-нибудь в файловую систему вне вашего контейнера. Например /opt/mycompany/conf/myproperties.properties на linux или в любом другом месте, которое вам нравится. Теперь вы должны использовать абсолютный путь при создании FileInputStream.

Чтобы система лучше настраивалась, вы не должны писать путь к файлу конфигурации внутри кода. Лучшим подходом является передача его в приложение с использованием системных свойств, например. добавьте параметр, например -Dmycompany.conf=/opt/mycompany/myprops.properties, когда вы запускаете сервер приложений. Если вы хотите прочитать файл, выполните следующие действия:

new FileInputStream(System.getProperties("mycompany.conf"))

Теперь конфигурация вашей системы может независимо контролироваться развертывателем.

Ответ 3

Попробуйте изменить FileInputStream fis = new FileInputStream("myproperties.properties"); на FileInputStream fis = new FileInputStream(new File("myproperties.properties"));

Кроме того, убедитесь, что используемые вами классы уже импортированы в файл jsp. А именно,

<%@ page import="java.io.FileInputStream" %>
<%@ page import="java.io.File" %>