當前位置:首頁 » 數據倉庫 » 怎麼配置好的xml文件
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

怎麼配置好的xml文件

發布時間: 2022-04-16 02:06:02

A. ssh框架的xml文件怎麼配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<!-- 配置spring的監聽器 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>

<!-- 開啟監聽 -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>

<!-- 配置OpenSessionInViewFilter,必須在struts2監聽之前 -->
<!--
<filter>
<filter-name>lazyLoadingFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>lazyLoadingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-->
<!-- 設置監聽載入上下文 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern> <!--注意:千萬不能寫成:*.action ,如果需要:*.action應該配置在struts.xml中-->
</filter-mapping>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

B. 如何配置Tomcat Server.xml文件詳解

server.xml常用的配置也就是訪問埠和連接超時的配置通常會使用默認
如果同一台伺服器上部署兩個tomcat兩個tomcat的埠不能沖突,需要修改三個port,如下:

編碼格式配置:URIEncoding="UTF-8"

C. 如何調試xml配置文件

在Eclipse下編輯XML文件時可以像Java文件一樣進行格式化。不過,默認的格式化設置效果不太理想,尤其是標簽屬性較多時。
通過以下設置可以達到一個相對理想的效果:
Window -> Preferences -> XML ->XML Files -> Editor :
1.1設置每行寬度
Line width 設定為80到100個字元。
1.2標簽的每個屬性都單獨一行顯示:
選中Split multiple attributes each on a new line
1.3 標簽結束符不單獨佔用一行:
不選中Align final bracket in multi-line element tags
1.4去掉所有空行:
選中Clear all blank lines
1.5 在標簽結束符前添加空格:
選中Insert whitespace before closing empty end-tags
1.6縮進使用空格代替tab:
選中Indent using spaces
1.7 設定縮進寬度
Indentation size 設定為4,即縮進4個空格。

D. tomcat中的xml文件該如何配置

你看看這個:
tomcat6_apache2.2_ajp負載均衡加集群實戰
環境:
--------------------------------------------
一台apache2.2伺服器,三台tomcat伺服器:

apache2.2伺服器
1.ip:192.168.1.20
2.只裝apache軟體:httpd-2.2.6.tar.bz2
安裝路徑:/usr/local/apache2

tomcat伺服器:均配置相同的應用。
1.集群名:balancer://tomcatcluster
2.三台集群伺服器ip:
IP_1:192.168.1.31
IP_2:192.168.1.32
IP_3:192.168.1.33
3.測試應用程序test文件夾放在tomcat6的webapps目錄下

操作系統均為:centos 4.5_x86
jre:1.6:jdk-6u1-linux-i586-rpm.bin
tomcat6.0:編譯好的二進制軟體包apache-tomcat-6.0.13.tar.gz
tomcat6.0 安裝路徑:/usr/local/tomcat6

oralce的jdbc:class12.jar

軟體包存放的路徑:/home/xiutuo/software/
java安裝路徑:/usr/java/jdk1.6.0_01
使用普通用戶:xiutuo來啟動tomcat6
tomcat6開機自動啟動腳本:/etc/init.d/tomcat

下載路徑:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++

一:前言:

1.apache對tomcat集群支持有倆種方式:

a.通過apache2.1之後版本後內置的proxy_ajp。
b.對於apache2.1之版本則通過tomcat的jk2.0.4的mod_jk2.so:
(該版本已經停止開發)
將解壓縮後的目錄中的moles目錄中的mod_jk2.so
文件復制到apache的安裝目錄下的moles目錄中。
********************
倆種方式比較:
proxy_ajp配置較簡單,主要表現在proxy_ajp目前只支持配置到目錄,
還不支持對文件名稱的pattern模式匹配
(即還不能定義到只對jsp文件起作用)。

而jk2則可配置性強,但已經停止開發
********************

官方對ajp和jk2說明:
JK2 has been put in maintainer mode and no further development will take place.
The reason for shutting down JK2 development was the lack of developers interest.
Other reason was lack of users interest in adopting JK2,
caused by configuration complexity when compared to JK.

The latest official JK2 release is 2.0.4.

JK2 will have it's successor within core Apache2.1/2.2 distribution.
We have developed new proxy_ajp that is an addition to the mod_proxy
and uses Tomcat's AJP protocol stack. It is developped in httpd-2.1
and integrated in it. We have also developed a new proxy_balancer
mole for load balancing http and ajp protocol stacks.

JK will be fully supported for all other web servers.
The next JK release is planned for the end of November.
Lots of code from JK2 has been ported to JK

2.tomcat集群方式:
a.DeltaManager
--現在採用的該方式:內部機器集群少採用
b.BackupManager
********************
兩種集群方式官方說明:
using the DeltaManager to replicate session deltas.
By all-to-all we mean that the session gets replicated to
all the other nodes in the cluster. This works great for smaller cluster
but we don't recommend it for larger clusters(a lot of tomcat nodes).
Also when using the delta manager it will replicate to all nodes,
even nodes that don't have the application deployed.

To get around this problem, you'll want to use the BackupManager.
This manager only replicates the session data to one backup node,
and only to nodes that have the application deployed.Downside of
the BackupManager: not quite as battle tested as the delta manager.
********************

3.負載均衡(load-balance)定義:
在伺服器端短時間內獲得大量的請求,單一伺服器無法在一個較短的時間內響應這些請求,
此時伺服器需要一個機制,請求按照多個伺服器不同的負載能力,把這些請求合理的分配。

4.集群(cluster):
在多個伺服器之間共享用戶信息,資源等。

tomcat6_apache2.2負載均衡加集群:高可用性至高體現。
現在的帶集群功能相關軟體oracle10g,mysql5,tomcat等。

二:軟體安裝

1.apache伺服器安裝:
這里主要介紹apache2的源碼安裝
# cd /home/xiutuo/software/
# tar -zvxf httpd-2.2.6.tar.gz
# cd httpd-2.2.6
# mkdir -p /usr/local/apache2
# ./configure \
--prefix=/usr/local/apache2 \
--enable-moles=so \
--enable-mods-shared=all \
--enable-proxy \
--enable-proxy-connect \
--enable-proxy-ftp \
--enable-proxy-http \
--enable-proxy-ajp \
--enable-proxy-balancer

注釋:這里測試用,編譯了所有可用模塊,並激活了tomcat集群需要的
enable-proxy,enable-proxy-http,enable-proxy-connect,enable-proxy-ajp
和enable-proxy-balancer,其中proxy-ajp和proxy-balancer必須依賴proxy,
如果是自定義的編譯除了以上幾個必須的模塊外,mod_status也要編譯進去,切記。
enable-proxy-ftp可以不編譯。
# make
# make install

2. 三台tomcat伺服器安裝

主要介紹jdk1.6u1和tomcat6的安裝,三台機器重復此工作就可以了,
當然記得ip一定要設置正確。

jdk1.6安裝
-------------------------------
a.卸載系統自帶jdk
# rpm -e j2sdk-1.4.1-fcs

b.安裝新jdk
# cd /home/xiutuo/software
進入軟體包存放目錄

# chmod a+x jdk-6u1-linux-i586-rpm.bin
使它有執行許可權

# ./jdk-6u1-linux-i586-rpm.bin
多敲幾個空格,然後看到[yes]的時候輸入yes,回車
然後在當前目錄下就生成了jdk-6u1-linux-i586-rpm

# rpm -ivh jdk-6u1-linux-i586-rpm

c.設置環境變數
僅設置某個用戶而不是所有用戶可以修改~/.cshrc,~/.bash_profile文件,
追加下面一段,如果為所有用戶以及以後添加的用戶都加上環境變數的話,
追加/etc/profie文件.
***主意不要在profile和~/.cshrc或~/.bash_profile中重復追加**

這里:
# vi /etc/profile
//java
//如果你安裝的j2sdk的路徑不一樣,請自行修改

JAVA_HOME=/usr/java/jdk1.6.0_01
export JAVA_HOME
CLASSPATH=/usr/java/jdk1.6.0_01/lib:/usr/java/jdk1.6.0_01/jre/lib
export CLASSPATH
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH
JRE=/usr/java/jdk1.6.0_01/jre
export JRE

d:立即生效
//如果你修改的是/etc/profile
# source /etc/profile
//如果你修改的是~/.cshrc
# source ~/.cshrc
//如果你修改的是~/.bash_profile
# source ~/.bash_profile

e:測試成功否
# java -version
Java(TM) SE Runtime Environment (build 1.6.0_01-b06)
Java HotSpot(TM) Client VM (build 1.6.0_01-b06, mixed mode, sharing)
看到這個消息,就ok啦
----------------------------------------------

tomcat6安裝
tomcat6更詳細的安裝請看blog上tomcat文章
----------------------------------------------
a.安裝tomcat,
# cd /home/xiutuo/software //進入軟體包存放目錄
# tar -zvxf apache-tomcat-6.0.13.tar.gz //解壓
# mv apache-tomcat-6.0.13 /usr/local/tomcat6 //安裝

# cd /usr/local/tomcat6/bin/ //進入安裝目錄
# tar -zvxf jsvc.tar.gz //解壓
# cd jsvc-src //進入jsvc-src目錄
# autoconf
# ./configure --with-java=/usr/java/jdk1.6.0_01
# configure時切記加java的jdk路徑,否則無法使用普通用戶開機自動啟動tomcat

# make //編譯生成jsvc文件
# cp jsvc .. //拷貝jsvc到上級目錄
# cd .. //回到上級目錄

# cd /usr/local/tomcat6/

//運行下面的命令可以使tomcat以daemon方式運行
# ./bin/jsvc -cp ./bin/bootstrap.jar \
-outfile ./logs/catalina.out \
-errfile ./logs/catalina.err \
org.apache.catalina.startup.Bootstrap

b.配置oralce的jdbc
//拷貝oracle的jdbc到/usr/local/tomcat6/lib目錄下
# cp /home/software/class12.jar ./lib/

c.配置tomcat用戶
# cd /usr/local/tomcat6/conf
# vi tomcat-users.xml
內容如下:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="admin" password="admin" roles="admin,manager"/>
</tomcat-users>
請修改tomcat里所有定義用戶的密碼:即修改password為自己想要的值。

d.把應用程序文件夾test放到webapps下

3.tomcat負載均衡和集群配置
參考官方配置文檔:

a.tomcat6配置文件server.xml和應用程序的web.xml

**開放負載均衡,默認使用ajp協議時使用8009埠(使用http協議時為8080埠)
**修改tomcat 的 conf/server.xml 的<Engine>(使用ajp協議時配置)

<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
-->
<Engine name="Catalina" defaultHost="localhost">
改成

<!-- You should set jvmRoute to support load-balancing via AJP ie :
-->
<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat1">
<!--
<Engine name="Catalina" defaultHost="localhost">
-->
說明:
第一台tomcat就把jvmRoute="tomcat1"
第二台tomcat就把jvmRoute="tomcat2"
第三台tomcat就把jvmRoute="tomcat3"

**開放集群
**修改tomcat 的 conf/server.xml (使用ajp協議時配置)
在<Engine> 後面或者 <Host>後面簡單的加上
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
也可以加上更詳細參數的集群配置內容(這是官方默認,請自行修改相關參數):

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8">

<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>

<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="4000"
autoBind="100"
selectorTimeout="5000"
maxThreads="6"/>

<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
</Channel>

<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=""/>
<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>

<ClusterListener className="org.apache.catalina.ha.session."/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>

***配置應用的web.xml
***在每個webapps應用中,修改配置文件web.xml文件 添加元素<distributable/>
在web.xml文件中<web-app>元素下增加以下內容:
<!--此應用將與群集伺服器復制Session-->
<distributable/>
具體修改如下:
修改前:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns=""
xmlns:xsi=""
xsi:schemaLocation=" "
version="2.5">
</web-app>
修改後:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns=""
xmlns:xsi=""
xsi:schemaLocation=" "
version="2.5">
<!--此應用將與群集伺服器復制Session-->
<distributable/>
</web-app>

4.配置apache的ajp負載均衡功能,這里請務必啟用反向代理。
******************************
至於其中的原理請參考官方文檔說明。

正向代理的典型用途是為在防火牆內的區域網客戶端提供訪問Internet的途徑。
正向代理還可以使用緩沖特性(由mod_cache提供)減少網路使用率。

反向代理的典型用途是將防火牆後面的伺服器提供給Internet用戶訪問。
反向代理還可以為後端的多台伺服器提供負載平衡,或為後端較慢的伺服器提供緩沖服務。
另外,還可以啟用高級URL策略和管理技術,從而使處於不同web伺服器系統的web頁面同時
存在於同一個URL空間下。
*****************************

參考文檔:
tomcat6官方文檔

apache中文版本

apache官方英文版本

***配置apache
***修改/usr/local/apache2/conf/httpd.conf文件

確保將以下Mole的注釋去掉
LoadMole proxy_mole moles/mod_proxy.so
LoadMole proxy_connect_mole moles/mod_proxy_connect.so
LoadMole proxy_ftp_mole moles/mod_proxy_ftp.so
LoadMole proxy_http_mole moles/mod_proxy_http.so
LoadMole proxy_ajp_mole moles/mod_proxy_ajp.so
LoadMole proxy_balancer_mole moles/mod_proxy_balancer.so
LoadMole status_mole moles/mod_status.so

並在最後面,增加
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from all
</Location>
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
Deny from all
Allow from all
</Location>
ProxyRequests Off
ProxyPass /test balancer://tomcatcluster/ stickysession=jsessionid nofailover=On

<Proxy balancer://tomcatcluster>
BalancerMember ajp://192.168.1.30:8009 loadfactor=1
BalancerMember ajp://192.168.1.31:8009 loadfactor=2
BalancerMember ajp://192.168.1.32:8009 loadfactor=3
</Proxy>
注釋:
ProxyRequests Off 表示啟用反向代理。
ProxyPass為代理轉發的Url,即將所有訪問/的請求轉發到
群集balancer://tomcatcluster,這里為/test即將所有訪問/的請求轉發到群集balancer://tomcatcluster的/test目錄

BalancerMember為群集的成員,
即群集伺服器1或2或3,負載均衡伺服器會根據均衡規則來將請求轉發給BalancerMember。

配置好後,啟動Apahce伺服器,訪問localhost就會看到群集伺服器中應用返回的結果。

訪問,顯示負載均衡有關信息

5.調試負載均衡集群系統

調試前務必:
先開啟三台tomcat6伺服器的tomcat服務!
再開啟apache伺服器的apache服務,切記!

a.開啟tomcat服務
# cd /usr/local/tomcat6/bin
# ./shutdown.sh //停止tomcat
# ./start.sh //啟動tomcat

查看tomcat的進程:
# ps -e | grep java
出現了java這個進程的話,說明你的tomcat起來了。

b.開啟apache服務
# cd /usr/local/apache2/bin
# ./apachectl configtest
//命令檢查一下配置是否有誤,顯示Syntax OK,說明配置正確
# ./apachectl stop //停止apache
# ./apachectl start //啟動apache

6.檢驗是否負載均衡集群系統成功

訪問apache伺服器的web服務

如果顯示負載均衡有關信息則說明成功了。
接著可以訪問即訪問到了tomcat的test應用

7.具體的tomcat集群負載均衡優化請參考文檔自行設置相關參數
具體的apache優化請參考文檔自行設置相關參數

E. C++如何操作XML配置文件

<?xmlversion="1.0"encoding="utf-8"?>
<Cases>
<case>
<No>001</No>
<CopyFilesrc="C: est.txt"dest="D: est.txt"></CopyFile>
</case>

<case>
<No>002</No>
<DelFile>C: est.txt</DelFile>
</case>
</Cases>

我們用C++來讀取上述xml,代碼如下:

voidCTestToolsDlg::ReadXml(CStringstrXmlPath)
{
MSXML2::IXMLDOMDocumentPtrpDoc;
::CoInitialize(NULL);
HRESULThr=pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40));

if(!SUCCEEDED(hr))
{
MessageBox(_T("創建DOMDocument對象失敗。 請檢查運行環境"),_T("錯誤"),MB_ICONERROR);
return;
}
//讀取xml
pDoc->put_async(VARIANT_FALSE);
VARIANT_BOOLbhr=pDoc->load((_variant_t)strXmlPath);

if(bhr!=VARIANT_TRUE){
MessageBox(_T("無法正確讀取xml文件"),_T("錯誤"),MB_ICONERROR);
return;
}

//根節點取得
MSXML2::IXMLDOMElementPtrroot=pDoc->documentElement;
//取得根節點的名字
_variant_tstrRootName=root->nodeName;
_bstr_twstrRootName(strRootName.bstrVal);
MSXML2::IXMLDOMNodeListPtrnodeList=root->GetchildNodes();//cases

//解析cases的子節點
ReadCases(nodeList);
}

voidCTestToolsDlg::ReadCases(MSXML2::IXMLDOMNodeListPtrnodeList)
{
intilength=nodeList->Getlength();
for(intnodeCount=0;nodeCount<ilength;nodeCount++){
MSXML2::IXMLDOMNodePtrnodePtr=nodeList->nextNode();
_variant_tstrNodeName=nodePtr->GetnodeName();
_variant_tstrNodeValue=nodePtr->GetnodeValue();

//讀取case節點下的子節點
ReadCase(nodePtr->GetchildNodes());
}
}

voidCTestToolDlg::ReadCase(MSXML2::IXMLDOMNodeListPtrnodeList)
{
CStringstrLogInfo;
strLogInfo.Empty();
CStringstrNo;//case編號
CStringstrSrcFile;//源文件
CStringstrDestFile;//目標文件
for(intnodeCount=0;nodeCount<nodeList->Getlength();nodeCount++)
{
MSXML2::IXMLDOMNodePtrnodePtr=nodeList->nextNode();
_variant_tstrCaseNodeName=nodePtr->GetnodeName();
_variant_tstrCaseNodeValue=nodePtr->Gettext();
BSTRbStrTemp=strCaseNodeName.bstrVal;
CStringstrTemp=CString(bStrTemp);
SysFreeString(bStrTemp);
CStringstrNodeName=strTemp;
//節點的值,如何取得?
if(0==strNodeName.CompareNoCase(_T("NO")))
{
strNo=(BSTR)strCaseNodeValue.pbstrVal;

//取得的值可以列印出來
printf(strNo);
}

//節點有屬性值,該怎麼處理?
elseif(0==strNodeName.CompareNoCase(_T("CopyFile")))
{
strSrcFile.Empty();
strDestFile.Empty();
//取得節點的屬性值
MSXML2::=nodePtr->Getattributes();
for(intj=0;j<pDOMAttrList->Getlength();j++)
{
MSXML2::IXMLDOMNodePtrpDOMAttr=pDOMAttrList->Getitem(j);
//取得源文件路徑
if(CompareNoCase((char*)pDOMAttr->GetnodeName(),_T("src")))
{
strSrcFile=pDOMAttr->GetnodeTypedValue();
//取得目標文件路徑
}elseif(CompareNoCase((char*)pDOMAttr->GetnodeName(),_T("dest")))
{
strDestFile=pDOMAttr->GetnodeTypedValue();
}

CopyFile(strSrcFile,strDestFile,FALSE);
}
elseif(0==strNodeName.CompareNoCase(_T("DelFile")))
{
strDestFile.Empty();
strDestFile=CString((BSTR)strCaseNodeValue.pbstrVal);

DeleteFile(strDestFile);
}
}
}

為了能夠讓C++認識MSXML2,我們需要引入相應的dll,代碼如下;#import "msxml4.dll"

F. eclips 裡面的xml文件怎麼配置

xml文件是現在比較流行的配置文件,我說一下他的構成<?xml version="" encoding=""?>開頭要標明版本和編碼這兩個是必須的其他按需添加,格式就是尖括弧加?號。下面配置dtd,這是對xml書寫的一種規范。比如,任何元素都要被節點包著,有父節點和子節點。假如你要配置一個歡迎頁面吧就得這樣
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
此處<welcome-file-list></welcome-file-list>是父節點<welcome-file></welcome-file>是子節點

G. springxml文件怎麼配置

對於大多數的應用,從表現層的action,到持久層的DataSource,都被Spring 作為
bean 管理。如果這些bean 被配置在同一個文件中,閱讀及維護該配置文件將是一件非
常有挑戰的事情。
因此, Spring 建議:將一個大的配置文件分解成多個小的配置文件,使每個配置文
件僅僅管理功能近似於bean; 這樣不僅可以分散配置文件,降低修改配置文件的風險,
而且更符合"分而治之"的軟體工程原理。
多個配置文件最終需要匯總, ApplicationContext提供如下方式來匯總多個配置文件:
.使用App1icationContext 載入多個配置文件。
• Web 應用啟動時載入多個配置文件。
• XML 配置文件中導入其他配置。
1 ApplicationContext 載入多個配置文件
ApplicatonContext 的常用實現類有如下兩個:
• ClassPathXm1 ApplicationContext 。
• 。
這兩個類都可以用來載入多個配置文件,它們的構造器都可以接收一個數組,並在
該數組中存放多個配置文件。 可採用如下代碼載入多個
配置文件:

H. 怎樣配置伺服器裡面的Web.XML文件

servlet中web.xml配置詳解(轉)

這篇文章轉自JavaEye,以前配置web.xml時都不知道為什麼這樣,看了之後明白了很多。貼下來,共同分享!
Web.xml常用元素
<web-app>
<display-name></display-name>定義了WEB應用的名字
<description></description> 聲明WEB應用的描述信息

<context-param></context-param> context-param元素聲明應用范圍內的初始化參數。
<filter></filter> 過濾器元素將一個名字與一個實現javax.servlet.Filter介面的類相關聯。
<filter-mapping></filter-mapping> 一旦命名了一個過濾器,就要利用filter-mapping元素把它與一個或多個servlet或JSP頁面相關聯。
<listener></listener>servlet API的版本2.3增加了對事件監聽程序的支持,事件監聽程序在建立、修改和刪除會話或servlet環境時得到通知。
Listener元素指出事件監聽程序類。
<servlet></servlet> 在向servlet或JSP頁面制定初始化參數或定製URL時,必須首先命名servlet或JSP頁面。Servlet元素就是用來完成此項任務的。
<servlet-mapping></servlet-mapping> 伺服器一般為servlet提供一個預設的URL:http://host/webAppPrefix/servlet/ServletName。
但是,常常會更改這個URL,以便servlet可以訪問初始化參數或更容易地處理相對URL。在更改預設URL時,使用servlet-mapping元素。

<session-config></session-config> 如果某個會話在一定時間內未被訪問,伺服器可以拋棄它以節省內存。
可通過使用HttpSession的setMaxInactiveInterval方法明確設置單個會話對象的超時值,或者可利用session-config元素制定預設超時值。

<mime-mapping></mime-mapping>如果Web應用具有想到特殊的文件,希望能保證給他們分配特定的MIME類型,則mime-mapping元素提供這種保證。
<welcome-file-list></welcome-file-list> 指示伺服器在收到引用一個目錄名而不是文件名的URL時,使用哪個文件。
<error-page></error-page> 在返回特定HTTP狀態代碼時,或者特定類型的異常被拋出時,能夠制定將要顯示的頁面。
<taglib></taglib> 對標記庫描述符文件(Tag Libraryu Descriptor file)指定別名。此功能使你能夠更改TLD文件的位置,
而不用編輯使用這些文件的JSP頁面。
<resource-env-ref></resource-env-ref>聲明與資源相關的一個管理對象。
<resource-ref></resource-ref> 聲明一個資源工廠使用的外部資源。
<security-constraint></security-constraint> 制定應該保護的URL。它與login-config元素聯合使用
<login-config></login-config> 指定伺服器應該怎樣給試圖訪問受保護頁面的用戶授權。它與sercurity-constraint元素聯合使用。
<security-role></security-role>給出安全形色的一個列表,這些角色將出現在servlet元素內的security-role-ref元素
的role-name子元素中。分別地聲明角色可使高級IDE處理安全信息更為容易。
<env-entry></env-entry>聲明Web應用的環境項。
<ejb-ref></ejb-ref>聲明一個EJB的主目錄的引用。
< ejb-local-ref></ ejb-local-ref>聲明一個EJB的本地主目錄的應用。
</web-app>

I. 通過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目錄中。

J. 如何配置struts.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">

<!-- struts是struts2配置文件的根元素 -->
<struts>

<!-- 會員管理 -->
<package name="user" extends="zqzj-default" namespace="/user">
<action name="user" class="userManageAction" method="user">
<result>/WEB-INF/pages/user/user.jsp</result>
</action>
</package>
</struts>

這就是一個Struts2.xml的例子。
<package 里的name名字隨便起,但是不能和其他的package的name重復。namespace可不寫,寫了之後訪問路徑:項目名+namespace名字+jsp頁面名
<action name也是隨便起,不過習慣上是和action里你要請求的方法一致,class是action類的全類名路徑,我這個SSH框架的所以不用全路徑。
<result 是返回類型,裡面有type屬性,默認是請求轉發,name默認是success