package com.oaking.fund.cmb.util;
import org.w3c.dom.Document;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.*;
import java.io.InputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.xml.sax.SAXException;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import java.io.File;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
/**
* <p>Title:密钥读改 </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: HISUN</p>
*
* @author hwj
* @version 1.0
*/
public class KeyXMLTool {
//保存密钥的XML文件
private static String CMBKeyFileName="cmbKey.xml";
//得到WEB-INF的绝对路径
private static String web_inf_Path=new File(KeyXMLTool.class.getResource("/").getPath()).getParent()+"/WEB-INF";
private static String CMBKeyFilePath=web_inf_Path+"/"+CMBKeyFileName;
private static DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance();
/**
* 获取一Document对象
* @param fileName String
* @return Document
*/
private static Document getDocumentByFileName(final String fileName){
Document doc=null;
try {
DocumentBuilder dombuilder = domfac.newDocumentBuilder();
InputStream in=new FileInputStream(fileName);
// InputStream in=ClassLoader.getSystemResourceAsStream(fileName);
// InputStream in = KeyXMLTool.class.getResourceAsStream("/Key.xml");
doc=dombuilder.parse(in);
} catch (ParserConfigurationException ex) {
ex.printStackTrace();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
} catch (SAXException ex) {
ex.printStackTrace();
}
return doc;
}
public static String getPINKey(){
// System.out.println(">>>>>当前类所在绝对目录 "+KeyXMLTool.class.getResource(".").getPath());
// System.out.println(">>>>>当前类所在绝对目录 "+KeyXMLTool.class.getResource("").getPath());
// System.out.println("TEST PATH="+KeyXMLTool.class.getResource("/").getPath());
String pinKey=null;
Document doc=getDocumentByFileName(CMBKeyFilePath);
NodeList pinKeyNodeList=doc.getElementsByTagName("pinkey");
Node pinKeyNode=pinKeyNodeList.item(0);
pinKey=pinKeyNode.getFirstChild().getNodeValue();
return pinKey;
}
public static synchronized void setPINKEY(final String pinKey){
Document doc=getDocumentByFileName(CMBKeyFilePath);
NodeList pinKeyNodeList=doc.getElementsByTagName("pinkey");
Node pinKeyNode=pinKeyNodeList.item(0);
pinKeyNode.getFirstChild().setNodeValue(pinKey);
doc2XmlFile(doc,CMBKeyFilePath);
}
public static String getMACKEY(){
String macKey=null;
Document doc=getDocumentByFileName(CMBKeyFilePath);
NodeList pinKeyNodeList=doc.getElementsByTagName("mackey");
Node pinKeyNode=pinKeyNodeList.item(0);
macKey=pinKeyNode.getFirstChild().getNodeValue();
return macKey;
}
public static synchronized void setMACKEY(final String macKey){
Document doc=getDocumentByFileName(CMBKeyFilePath);
NodeList pinKeyNodeList=doc.getElementsByTagName("mackey");
Node pinKeyNode=pinKeyNodeList.item(0);
pinKeyNode.getFirstChild().setNodeValue(macKey);
doc2XmlFile(doc,CMBKeyFilePath);
}
/** 将document中的内容写入文件中 */
public static boolean doc2XmlFile(Document document,String filename){
boolean flag = true;
try {
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
/** 编码 */
//transformer.setOutputProperty(OutputKeys.ENCODING, "GB2312");
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(new File(filename));
transformer.transform(source, result);
}catch(Exception ex)
{
flag = false;
ex.printStackTrace();
}
return flag;
}
public static void main(String[] args){
// File tFile=new File(KeyXMLTool.class.getResource("/").getPath());
// System.out.println("父目录"+tFile.getParent());
// System.out.println(tFile.getAbsolutePath());
// System.out.println(">>>>>根目录 "+KeyXMLTool.class.getResource("/").getPath());
System.out.println(">>>PINKEY="+getPINKey());
setPINKEY("");
System.out.println(">>>PINKEY22="+getPINKey());
System.out.println(">>>MACKEY="+getMACKEY());
setMACKEY("8#$$$$$$iio");
System.out.println(">>>MACKEY22="+getMACKEY());
}
}
XML如下
<?xml version='1.0' encoding="UTF-8" ?>
<key>
<pinkey>121212</pinkey>
<mackey></mackey>
</key>
相关推荐
本文将详细介绍WEB-INF中的web.xml文件中的配置,包括Context配置、Resource配置、resource-ref配置,以及对应的Java类编写。 一、Context配置 在WEB-INF中的web.xml文件中,添加以下配置:...
WEB-INF/web.xml 文件** - **功能**: 定义 Web 应用程序的部署描述符,包含 Servlet、Filter、Listener 等的配置信息。 - **重要性**: 是 Web 应用的核心配置文件之一,控制着 Web 应用的运行时行为。 **2. WEB-...
在Java Web应用程序中,WEB-INF目录是一个非常重要的组成部分,它包含了一些对用户不可见的敏感资源,如Web应用的配置文件(web.xml)、类文件(通过编译的Java源代码)以及库(JAR文件)。这个目录的设计目的是为了...
`WEB-INF`主要包含以下几个关键子目录和文件: 1. `classes`:存放未打包的Java类文件。 2. `lib`:存放Java应用程序所需的JAR文件,这些文件会被添加到类路径中。 3. `web.xml`:Web应用的部署描述符,定义了应用...
WEB-INF目录下包含了Web应用程序的核心内容,包括类文件(.class文件)、JSP文件、XML配置文件等。由于这些文件不是最终交付给客户端的静态内容,所以它们不应该直接对用户暴露。根据Servlet规范,浏览器不能直接...
3. **获取WEB-INF路径** 如果你需要获取`WEB-INF`的物理路径,可以稍微修改上面的代码: ```java String webInfPath = context.getRealPath("/WEB-INF"); ``` 这将返回`WEB-INF`目录的物理路径。 4. **注意点*...
总的来说,这个压缩文件包含了一个运行中的Red5服务器的`WEB-INF`目录,其中的`red5-web.properties`和`web.xml`是理解并配置Red5服务的关键文件。对于想要了解或开发基于Red5的流媒体应用的人来说,这是一个有价值...
//读取WEB-INF下的xml文件 public XMLReader(String fileName); //查找文件中的结点 public List<Node> getAllNodeByTagName(String tagname); //根据属性名称获取结点的属性值 public static String ...
在Spring MVC框架中,开发人员通常将JSP页面放置在`/WEB-INF/views`目录下,以增加安全性,因为直接通过URL无法访问这个路径。然而,有时会出现Spring MVC无法正确解析并显示这些JSP页面的问题,导致404错误。本篇...
标题中的问题“无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl”指出,这可能是Java Web应用开发中遇到的一个常见错误,涉及到JSP(JavaServer Pages)和JSTL(Java...
2、把WEB-INF文件夹下的style.xml和button.xml复制到网站根目录的WEB-INF下; 3、把WEB-INF文件夹下的lib目录中的jar文件复制到网站根目录的WEB-INF的lib目录; 4、把WEB-INF文件夹下的class目录中的文件复制到网站...
- 使用`request.getRealPath("web.xml")`:这将返回`web.xml`文件的绝对路径。 - 示例:`C:\Program Files\Apache Software Foundation\Tomcat5.5\webapps\strutsTest\web.xml` 2. **通过表单提交获取路径**: -...
前面配了一个rsh的配置文件,但是那个文件在类路径下面的,这个我改了一个下,到了web-inf目录,也当是学习学习,弄了我才发现,原来xml配置文件默认的路径是classes下面的,弄了很多次,最终正确读取到,并能够正确...
<param-value>/WEB-INF/spring-config.xml</param-value> </context-param> <!-- 备注:此所设定的参数,在JSP网页中可以使用下列方法来取得:${initParam.param_name} 若在Servlet可以使用下列方法来获得:...
在Java EE(Java Platform, Enterprise Edition)开发中,...总的来说,Java EE Web的文件路径管理涉及类路径、Servlet上下文以及对XML解析和文件下载的操作。理解这些概念和方法对于开发健壮、高效的Web应用至关重要。
在描述中提到的"覆盖原WEB工程里面的WEB-INF"意味着你需要将上述的DWR相关包复制到你的Web应用的`WEB-INF/lib`目录下,并且更新或替换现有的`web.xml`文件以包含上述配置。这样,当你启动或重新部署应用时,DWR就会...
### web.xml配置文件详解 #### 一、概述 `web.xml`是Java Web应用程序的核心配置文件之一,主要用于定义Web应用程序的结构与行为。它是Servlet容器(如Tomcat)读取Web应用程序配置信息的主要来源,因此深入理解其...
1. **系统维护相关的配置文件**:`/WEB-INF/config/systemmaintenance/struts-config.xml` 和 `/WEB-INF/config/systemmaintenance/struts-config-publicmodule.xml`。这类文件通常包含与系统维护相关的配置,比如...
4.在WebContent/WEB-INF目录下建sitemesh.xml文件,内容如下: <property name="decorators-file" value="/WEB-INF/decorators.xml" /> ${decorators-file}" /> <page-parsers> <parser content-type="text/...
因为Tomcat等Servlet容器默认不允许直接通过URL访问`WEB-INF`目录下的资源,这可以防止未经身份验证的用户直接访问到敏感的页面或类文件。例如,登录验证后的页面通常会被放置在此目录下。 访问`WEB-INF`下的JSP...