`
endual
  • 浏览: 3545697 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

获取WEB-INF的绝对路径和读改XML文件

    博客分类:
  • java
 
阅读更多

获取WEB-INF的绝对路径和读改XML文件

 

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>

分享到:
评论

相关推荐

    Eclipse中web-inf和meta-inf文件夹的信息

    WEB-INF/web.xml 文件** - **功能**: 定义 Web 应用程序的部署描述符,包含 Servlet、Filter、Listener 等的配置信息。 - **重要性**: 是 Web 应用的核心配置文件之一,控制着 Web 应用的运行时行为。 **2. WEB-...

    WEB-INF中的web.xml中之前增加以下配置:

    本文将详细介绍WEB-INF中的web.xml文件中的配置,包括Context配置、Resource配置、resource-ref配置,以及对应的Java类编写。 一、Context配置 在WEB-INF中的web.xml文件中,添加以下配置:...

    请求重定向无法访问web-inf下的资源1

    在Java Web应用程序中,WEB-INF目录是一个非常重要的组成部分,它包含了一些对用户不可见的敏感资源,如Web应用的配置文件(web.xml)、类文件(通过编译的Java源代码)以及库(JAR文件)。这个目录的设计目的是为了...

    WEB-INF.zip

    `WEB-INF`主要包含以下几个关键子目录和文件: 1. `classes`:存放未打包的Java类文件。 2. `lib`:存放Java应用程序所需的JAR文件,这些文件会被添加到类路径中。 3. `web.xml`:Web应用的部署描述符,定义了应用...

    详解直接访问WEB-INF目录下的JSP页面的方法

    WEB-INF目录下包含了Web应用程序的核心内容,包括类文件(.class文件)、JSP文件、XML配置文件等。由于这些文件不是最终交付给客户端的静态内容,所以它们不应该直接对用户暴露。根据Servlet规范,浏览器不能直接...

    WEB 项目中JAVA取得WEBROOT物理路径

    3. **获取WEB-INF路径** 如果你需要获取`WEB-INF`的物理路径,可以稍微修改上面的代码: ```java String webInfPath = context.getRealPath("/WEB-INF"); ``` 这将返回`WEB-INF`目录的物理路径。 4. **注意点*...

    WEB-INF.zip_WORKING_red5_web

    总的来说,这个压缩文件包含了一个运行中的Red5服务器的`WEB-INF`目录,其中的`red5-web.properties`和`web.xml`是理解并配置Red5服务的关键文件。对于想要了解或开发基于Red5的流媒体应用的人来说,这是一个有价值...

    Java读取XML文件自制工具类

    //读取WEB-INF下的xml文件 public XMLReader(String fileName); //查找文件中的结点 public List&lt;Node&gt; getAllNodeByTagName(String tagname); //根据属性名称获取结点的属性值 public static String ...

    springmvc无法访问/WEB-INF/views下的jsp的解决方法

    在Spring MVC框架中,开发人员通常将JSP页面放置在`/WEB-INF/views`目录下,以增加安全性,因为直接通过URL无法访问这个路径。然而,有时会出现Spring MVC无法正确解析并显示这些JSP页面的问题,导致404错误。本篇...

    eWebeditor JSP 王志峰修改版

    2、把WEB-INF文件夹下的style.xml和button.xml复制到网站根目录的WEB-INF下; 3、把WEB-INF文件夹下的lib目录中的jar文件复制到网站根目录的WEB-INF的lib目录; 4、把WEB-INF文件夹下的class目录中的文件复制到网站...

    java绝对路径和相对路径

    - 使用`request.getRealPath("web.xml")`:这将返回`web.xml`文件的绝对路径。 - 示例:`C:\Program Files\Apache Software Foundation\Tomcat5.5\webapps\strutsTest\web.xml` 2. **通过表单提交获取路径**: -...

    最新RSH集成框架配置文件在web-INF目录

    前面配了一个rsh的配置文件,但是那个文件在类路径下面的,这个我改了一个下,到了web-inf目录,也当是学习学习,弄了我才发现,原来xml配置文件默认的路径是classes下面的,弄了很多次,最终正确读取到,并能够正确...

    无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl

    标题中的问题“无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl”指出,这可能是Java Web应用开发中遇到的一个常见错误,涉及到JSP(JavaServer Pages)和JSTL(Java...

    JAVA web.xml配置详解

    &lt;param-value&gt;/WEB-INF/spring-config.xml&lt;/param-value&gt; &lt;/context-param&gt; &lt;!-- 备注:此所设定的参数,在JSP网页中可以使用下列方法来取得:${initParam.param_name} 若在Servlet可以使用下列方法来获得:...

    javaEE-web的文件路径

    在Java EE(Java Platform, Enterprise Edition)开发中,...总的来说,Java EE Web的文件路径管理涉及类路径、Servlet上下文以及对XML解析和文件下载的操作。理解这些概念和方法对于开发健壮、高效的Web应用至关重要。

    DWR所需要的包与基本web.xml

    在描述中提到的"覆盖原WEB工程里面的WEB-INF"意味着你需要将上述的DWR相关包复制到你的Web应用的`WEB-INF/lib`目录下,并且更新或替换现有的`web.xml`文件以包含上述配置。这样,当你启动或重新部署应用时,DWR就会...

    web.xml配置文件详解

    ### web.xml配置文件详解 #### 一、概述 `web.xml`是Java Web应用程序的核心配置文件之一,主要用于定义Web应用程序的结构与行为。它是Servlet容器(如Tomcat)读取Web应用程序配置信息的主要来源,因此深入理解其...

    多个struts配置文件使用

    1. **系统维护相关的配置文件**:`/WEB-INF/config/systemmaintenance/struts-config.xml` 和 `/WEB-INF/config/systemmaintenance/struts-config-publicmodule.xml`。这类文件通常包含与系统维护相关的配置,比如...

    jsoup jar包

    4.在WebContent/WEB-INF目录下建sitemesh.xml文件,内容如下: &lt;property name="decorators-file" value="/WEB-INF/decorators.xml" /&gt; ${decorators-file}" /&gt; &lt;page-parsers&gt; &lt;parser content-type="text/...

    Java项目中如何访问WEB-INF下jsp页面

    因为Tomcat等Servlet容器默认不允许直接通过URL访问`WEB-INF`目录下的资源,这可以防止未经身份验证的用户直接访问到敏感的页面或类文件。例如,登录验证后的页面通常会被放置在此目录下。 访问`WEB-INF`下的JSP...

Global site tag (gtag.js) - Google Analytics