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