当前位置:首页 > 开发 > Web前端 > 前端 > 正文

项目的必要基础知识——配置文件

发表于: 2014-08-01   作者:古尔丹之颅   来源:转载   浏览:
摘要:        程序员中众所周知的事情就是当我们在代码中涉及到路径,端口等问题的时候,我们经常会来回反复修改这些数据,再者当我们将工程打包后,路径更会会随之改变,而我们再想去代码中更改路径就不现实了,而这里关于他是如何改变的在这里我们就不多说了,这时候我们就需要配置文件的出现,下面我将会主讲xml配置文件的部署、配置、读取。     &n

       程序员中众所周知的事情就是当我们在代码中涉及到路径,端口等问题的时候,我们经常会来回反复修改这些数据,再者当我们将工程打包后,路径更会会随之改变,而我们再想去代码中更改路径就不现实了,而这里关于他是如何改变的在这里我们就不多说了,这时候我们就需要配置文件的出现,下面我将会主讲xml配置文件的部署、配置、读取。

       首先xml是一种可扩展标记语言,标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。这些百度百科上面都有,基于这些特点,xml成为了很多工程编写配置文件的热门选择,尤其是一些大的工程,xml的采用树形结构,架构清晰,各种平台通用,可移植性好...等等等等。

进入正题如果是一般的java工程,我们在工程任意处new一个xml文件,关于这个文件怎么写那就见人见智了,如果你懂标记语言的基本格式,那就OK了,仅此而已。下面列出我的一个例子

<?xml version="1.0" encoding="UTF-8"?>
 <root>
 	   <url>http://192.168.30.178:8080/DBManager/DBManager?</url>
 </root>

  如你所见,如此而已。

 

下面我们就需要编写xml的读取了,在这里我们是借助 JDOM jar包进行解析的。

首先我们要获得你的xml文件的路径

String dirpath = System.getProperty("user.dir");//获取当前工作目录
String  xmlFile = dirpath + "/Mina_UDP/Server_Configuration_File.xml";//获取xml文件路径

  在这我们要实例化一个解析xml的对象并给与起一个InputStream输入流用于读取xml

SAXBuilder builder = new SAXBuilder();//实例化一个JDOM解析器 能将路径中的XML文件解析为Document对象
    InputStream file;
	try {
		file = new FileInputStream(xmlFile);//获取文件输入流
    	    org.jdom2.Document document;
		try {
			document = builder.build(file);//获得文档对象

  获得文档对象以后,我们便可以对文档对象为所欲为了,不管你是插入新的内容还是读取旧的内容还是更新内容都可以。不过我们要先获取xml的根节点

Element root = document.getRootElement();//获取xml根节点,在这里获取的就是上面xml中的<root></root>中的内容的引用

  接下来要调用这个引用的获取子节点的方法,该方法返回的是存有所有子节点的一个List

List files = root.getChildren();//获得根节点下子节点的内容,返回一个list

  而我们的根节点下面只有一条记录,所以只需要

   Element url = (Element) files.get(0);//这里返回的是存储该记录的节点对象,xml的结构之严谨由此可见一斑
  URL = url.getText();//获取该节点的信息
	} catch (JDOMException e) {
		log.error("文件解析出错");
	}
	} catch (IOException e) {
		og.error("文件IO流出错");
	}
	}catch(FileNotFoundException e1) {
		log.error("没有找到配置文件");
	}
}

  如此这般我们便成功的从xml配置文件中读取到我们需要的配置信息了。

 

 

而当我们需要在web工程中部署xml配置文件其实也不是很麻烦,其实web工程更需要做好配置文件的工作,因为在web中会设计到大量的端口号以及路径的问题

 

首先我们想让服务器在启动的时候,就自动加载配置信息,这只需要我们在web.xml中添加一些参数而已。在这之前我们需要写好配置文件,如上面所示即可,接着就要写一个类继承HttpServlet,在其init()方法中加入刚刚的JDOM读取方法,但是此时的xml配置文件路径的获取就不一样了,其他的还是相同的,xml文件路径获取方法如下

String realPath = getServletContext().getRealPath("");//这是获取服务器下工程的绝对路径
String file = getInitParameter("Servlet_File");//这是获取web.xml中xml文件的相对服务器的路径
 其他照旧,如此我们还需要对web.xml进行配置
 <!-- 配置Servlet_File -->
  <servlet>
	  <servlet-name>Servlet_File</servlet-name>
	  <servlet-class>com.IOT.web.Servlet_File</servlet-class>
	  <init-param>
	     <param-name>Servlet_File</param-name>
	     <param-value>\Servlet_File.xml</param-value>
	  </init-param>
	  <load-on-startup>2</load-on-startup>
  </servlet>
 <servlet-class>com.IOT.web.Servlet_File</servlet-class>是我们自己写的继承HttpServlet需要在服务器加载的类,
而<servlet-name>Servlet_File</servlet-name>是对其的引用,
<init-param></init-param>这里面则提供了配置文件相对于工程所在路径。
<load-on-startup> </load-on-startup>则是控制着web服务器加载的优先级,里面的值必须是整数,当没有指定任何值或者,值为负数时,只有当该Servlet被动调用时才会加载,
而当里面的值为正整数,则web服务器在刚启动的时候便会加载该Servlet,并且该值越小的时候,加载的优先级就会越高。如此一来就OK了。

项目的必要基础知识——配置文件

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
z第一章 对象导论 问题 1)面向对象设计(Object-oriented Programming,OOP)它具有哪些特征呢?;
[Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文:
如何通过项目配置文件指定Log4J的配置文件 引言 在打造易于部署的WEB应用项目一文中,我们介绍了如
引言 在 打造易于部署的WEB应用项目 一文中,我们介绍了如何对WEB项目进行重构,使项目WAR包无状态化
首先:下载SpringSide3开发环境mini-web项目(SpringSide3官方项目) http://download.csdn.net/sourc
l 项目的基本概念:以顾客为关注焦点,因此现代项目管理必须以实现目标利益相关者的要求和期望为目
本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~ l 项目标基本概念:以
原文出处;http://www.cnblogs.com/abluedog/archive/2006/04/15/375862.html 原文作者:abluedog 原
由于I/O总线无法满足图形设备的需求,设计了北桥芯片,也称为主桥。北桥是为了协调高速的硬件设备,
在基础网络协议上,java 支持TCP/IP 和UDP/IP。在网络操作上java支持BIO和NIO(新I/O可以查看http://
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号