當前位置:首頁 » 編程語言 » javaxml參數

javaxml參數

發布時間: 2022-12-28 06:33:56

1. 用java寫一個 webservice 接收參數為xml格式的數據。

拿到的xml數據應該是文件流吧,文件流不是本身就可以通過系統庫讀取的么,可以查一下讀取xml文件的方法,裡面都是先把文件轉成流再讀數據的,如果拿到的是流文件,省去讀文件的一步,其他的代碼都能直接拿來用

2. 通過java怎麼配置xml文件

JAVA與XML文件,可以說是軟體開發的「黃金搭檔」,而如何使用JAVA完成對XML文件的讀取,是我們首先要解決的問題。
一、XML文件

這個示例文件包括了用來打開ORACLE資料庫的各種參數

<?xml version="1.0" encoding="UTF-8"?>
<dbmsg>
<dbinfo>
<drivername>oracle.jdbc.driver.OracleDriver</drivername>
<sConnStr>jdbc:oracle:thin:@11.88.225.80:1521:VOUCHERDB</sConnStr>
<username>SYS AS SYSDBA</username>
<password>voucherdb</password>
</dbinfo>
</dbmsg>

二、編寫類名為ReadXml的類,用於解析XML文件

我們要在應用程序中打開資料庫,就必須完成對該文件中drivername、sConnStr、username、password的讀取,通過查找有關資料,筆者編制了以下程序,用於讀取文件名為filename的XML文件。

package voucher.basic;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class ReadXml {
private String drivername;
private String sConnStr;
private String username;
private String password;

public String getDrivername() {
return drivername;
}

public String getSConnStr() {
return sConnStr;
}

public String getUsername() {
return username;
}

public String getPassword() {
return password;
}
public void setDrivername(String drivername) {
this.drivername = drivername;
}

public void setSConnStr(String connStr) {
sConnStr = connStr;
}

public void setUsername(String username) {
this.username = username;
}

public void setPassword(String password) {
this.password = password;
}

public ReadXml(String fileName){
DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance();
try {
DocumentBuilder dombuilder=domfac.newDocumentBuilder();
InputStream is=new FileInputStream(fileName);
Document doc=dombuilder.parse(is);
Element root=doc.getDocumentElement();
NodeList dbinfo=root.getChildNodes();
if(dbinfo!=null){
for(int i=0;i<dbinfo.getLength();i++){
Node db=dbinfo.item(i);
for(Node node=db.getFirstChild();node!=null;node=node.getNextSibling()){
if(node.getNodeType()==Node.ELEMENT_NODE){
if(node.getNodeName().equals("drivername")){
setDrivername(node.getFirstChild().getNodeValue());
}
if(node.getNodeName().equals("sConnStr")){
setSConnStr(node.getFirstChild().getNodeValue());
}
if(node.getNodeName().equals("username")){
setUsername(node.getFirstChild().getNodeValue());
}
if(node.getNodeName().equals("password")){
setPassword(node.getFirstChild().getNodeValue());
}
}
}
}
}
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

這個以ReadXml命名的類,使用了參數為文件名的構造方法,用戶只要將配置文件我名稱傳遞給該方法,就可以完成對XML文件的解析,進而完成對相應參數數的讀取。三、如何獲取XML文件全路徑並讀取配置參數

獲取XML文件全路徑的方法有兩個,一是在servlet中獲取,二是在單獨的JAVA類中獲取。

1.在servlet中獲取XML文件的全路徑並讀取配置參數

程序片段String dirPath = getServletContext().getRealPath( "/WEB-INF");
String fileName = dirPath + "/conn.xml";
ReadXml xm = new ReadXml(fileName);
String DriverName = xm.getDrivername();
String connStr = xm.getSConnStr();
String user = xm.getUsername();
String pas = xm.getPassword();

將這段程序添加到servlet中dopost()之後即可完成參數的讀取

2.在單獨的JAVA類中獲取全路徑並讀取配置參數

程序片段String dirpath = System.getProperty("user.dir");
String xmlFile = dirpath + "/WebRoot/WEB-INF/conn.xml";
ReadXml rdxml = new ReadXml(xmlFile);
String driverName = rdxml.getDrivername();
String sConnStr = rdxml.getSConnStr();
String userName = rdxml.getUsername();
String passWord = rdxml.getPassword();註:配置文件conn.xml保存在webroot/WEB-INF目錄中。

3. 如何用java在web.xml文件中取值

如果是要取出全部的值.建議解析WEB.XML然後取值.如果是取某個特定的值可以用下面的:
web.xml裡面可以定義兩種參數:
(1)application范圍內的參數,存放在servletcontext中,在web.xml中配置如下:xml 代碼
<context-param>
<param-name>context/param</param-name>
<param-value>avalible ring application</param-value>
</context-param> (2)servlet范圍內的參數,只能在servlet的init()方法中取得,在web.xml中配置如下:xml 代碼
<servlet>
<servlet-name>MainServlet</servlet-name>
<servlet-class>com.wes.controller.MainServlet</servlet-class>
<init-param>
<param-name>param1</param-name>
<param-value>avalible in servlet init()</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet> 在servlet中可以通過代碼分別取用:java 代碼
package com.test;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

public class TestServlet extends HttpServlet ...{

public TestServlet() ...{
super();
}
public void init() throws ServletException ...{
System.out.println("下面的兩個參數param1是在servlet中存放的");
System.out.println(this.getInitParameter("param1"));
System.out.println("下面的參數是存放在servletcontext中的");
System.out.println(getServletContext().getInitParameter("context/param"));
}
} 第一種參數在servlet裡面可以通過getServletContext().getInitParameter("context/param")得到
第二種參數只能在servlet的init()方法中通過this.getInitParameter("param1")取得init-param屬於一個servlet所有,context-param屬於整個應用程序所有 ,不僅是在servlet中可以得到,jsp文件中也可以得到.在jsp中config就相當於這里的servletContext,<%=config.getServletContext().getInitParameter("...") %>.
action中ServletActionContext.getServletContext().getInitParameter("...").

4. java文件中怎麼獲取web.xml中的全局參數

每個 servlet 中 web.xml 中可以有 <init-param > 參數,在 servlet 的 init 方法中可以把它們取出來並保存在某個地方(比如一個靜態成員變數中,或者一個靜態的 map 變數中,因為這個參數不會改變,因此可以直接放在靜態變數中),其它的 Java 類就能去靜態變數中取得這個參數。

如果你的程序不是一個 web 程序的話,可以把它放在命令行 -Djdbc.drive=org.git.mm.mysql.Driver 這樣的參數中,之後程序可以用 System.getProperty("jdbc.driver"); 讀取出來。或者放在一個 properties 配置文件中,然後讀取這個properties 文件。

熱點內容
水電煤演算法 發布:2025-07-04 18:36:44 瀏覽:327
天翼視訊緩存文件夾 發布:2025-07-04 18:36:43 瀏覽:95
unix網路編程第2卷 發布:2025-07-04 18:33:41 瀏覽:779
編譯歷史 發布:2025-07-04 18:23:01 瀏覽:851
空調壓縮機種類 發布:2025-07-04 18:13:58 瀏覽:242
中國有ip6伺服器嗎 發布:2025-07-04 17:58:56 瀏覽:725
第六章編譯原理答案 發布:2025-07-04 17:37:55 瀏覽:40
php內存優化 發布:2025-07-04 17:25:54 瀏覽:664
威綸觸摸屏如何設置時間限制密碼 發布:2025-07-04 17:25:50 瀏覽:418
python列表的遍歷 發布:2025-07-04 17:24:20 瀏覽:24