Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java应用程序属性文件_Java - Fatal编程技术网

Java应用程序属性文件

Java应用程序属性文件,java,Java,我需要编写一个独立的应用程序,它将有一个嵌入式HTTP服务器。我需要调用应用程序在本地部署的页面。HTML页面应显示应用程序部署的*.properties文件中列出的属性。我应该能够改变属性值以及从HTML页面有办法做到这一点吗 我明白了吗?是的。使用嵌入式 听起来您不确定的部分是如何读取属性文件。虽然我真的不认为你的问题是那么清楚,你需要帮助的部分 一般来说,这很简单——您可以创建一个java.util.Properties对象(使用默认构造函数),然后为您的属性文件获取一个InputStre

我需要编写一个独立的应用程序,它将有一个嵌入式HTTP服务器。我需要调用应用程序在本地部署的页面。HTML页面应显示应用程序部署的*.properties文件中列出的属性。我应该能够改变属性值以及从HTML页面有办法做到这一点吗


我明白了吗?

是的。使用嵌入式

听起来您不确定的部分是如何读取属性文件。虽然我真的不认为你的问题是那么清楚,你需要帮助的部分

一般来说,这很简单——您可以创建一个java.util.Properties对象(使用默认构造函数),然后为您的属性文件获取一个InputStream(如果它确实在文件系统中,则使用FileInputStream,或者如果它在JAR中)。一旦你有了这个,你就可以调用来填充properties对象了

从那里,您可以迭代该对象以获取所有键和值并将其打印出来。显然,您需要使用诸如JSP之类的服务器端技术,而不是静态HTML来实现这一点

至于嵌入式服务器,Ramon认为Jetty应该足以满足您的需要,这是正确的。

1)创建一个servlet类,该类实现了
doGet()
以使用
properties\load()
读取属性文件,并使用
HttpServletRequest\setAttribute()将其存储在请求范围内,使用
RequestDispatcher#forward()
将请求转发到JSP文件。最后,将web.xml中的这个servlet映射到类似于
/propertieseditor
的url模式

Properties properties = new Properties();
properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("file.properties"));
request.setAttribute("properties", properties);
request.getRequestDispatcher("propertieseditor.jsp").forward(request, response);
2) 创建一个JSP文件,该文件使用JSTL
c:forEach
迭代属性键值对,每次生成一个HTML
input type=“text”
元素

<form action="propertieseditor" method="post">
    <c:forEach items="${properties}" var="property">
        ${property.key} <input type="text" name="${property.key}" value="${property.value}"><br>
    </c:forEach>
    <input type="submit">
</form>

最后,通过使用propertieseditor。祝您好运。

您可以使用“Commons配置”来加载和保存属性。检查和

@Peter Mortensen(re:edits)-你真的认为有必要在编程网站上链接到Java和HTML的定义吗?
Properties properties = new Properties();
Map<String, Object> parameterMap = request.getParameterMap();
for (Entry<String, Object> entry : parameterMap.entrySet()) {
    properties.setProperty(entry.getKey(), entry.getValue());
}
properties.store(new FileOutputStream(new File(
    Thread.currentThread().getContextClassLoader().getResource("file.properties").toURI())));
response.sendRedirect("propertieseditor.jsp");