A. 如何在web.xml添加自己得配置文件,並在tomcat啟動時候實現載入
jsp + servlet + tomcat例子中:
添加這樣的descirpto在web.xml文件並可以解析
....
<my-config>
<location>/WEB-INF/my/my-config.xml</location>
</my-config>
....
然後根據自己的配置文件完成類的載入和響應的功能
--------------------------
我自己的思路:修改web.xml依據的deploy descriptor文件
然後在自己取得相關配置文件的解析內容........
B. web.xml中相關配置
在web.xml中通過contextConfigLocation配置spring,contextConfigLocation參數定義了要裝入的 Spring 配置文件
部署applicationContext.xml文件
如果不寫任何參數配置,默認的是在/WEB-INF/applicationContext.xml
如果指定了要載入的文件,則會去載入相應的xml,而不會去載入/WEB-INF/下的applicationContext.xml。如果沒有指定的話,默認會去/WEB-INF/下載入applicationContext.xml。
如果想要自定義文件名,需要在web.xml中加入contextConfigLocation這個context參數
springmvc的默認配置文件是放在WEB-INF下的,並且要命名為 -servlet.xml, 為servlet—name,即下文中的"Springmvc"
web.xml文件中webAppRootKey屬性是web項目的絕對路徑,默認值是webApp.root,可以通過System.getProperty(「webApp.root」)來獲取屬性值或者在配置文件中通過${webApp.root}獲得。
Spring通過 org.springframework.web.util.WebAppRootListener 這個監聽器來注入項目路徑,因此部署在同一個web容器中的項目,要配置不同的param-value(比如」項目名.root」),不然會造成沖突。但是如果在web.xml中已經配置了org.springframework.web.util.Log4jConfigListener這個監聽器,則不需要配置WebAppRootListener了。因為Log4jConfigListener已經包含了WebAppRootListener的功能。WebAppRootListener要在ApplicationContext的ContextLoaderListener之前,否則ApplicationContext的bean注入根目錄值時會發生無法注入異常。
"webapp.root"這個字元串可以隨便寫任何字元串。如果不配置默認值是"webapp.root"。
可以用System.getProperty("webapp.root")來動態獲項目的運行路徑。
一般返回結果例如:/usr/local/tomcat6/webapps/項目名
定義以後,在Web Container啟動時將把ROOT的絕對路徑寫到系統變數里。
然後log4j的配置文件里就可以用${webName.root }來表示Web目錄的絕對路徑,把log文件存放於webapp中。
此參數用於後面的「Log4jConfigListener」-->
C. eclipse無法配置web.xml文件
前言 剛開始學習部署tomcat,新建java web項目後發現沒有web.xml配置文件,以下是原因及其解決方案。 產生原因及解決方案 新建web項目時如下圖所示,若直接選擇"完成",則默認不會在WebContent/WEB-INF文件夾下生成web.xml配置文件,此時應選擇下一步 在創建項目時勾選同時產生web.xml文件即可;當然也可以讓已經新建的web項目生成web....
查看原文
在eclipse中快速生成一個maven項目後一鍵生成web.xml
在web工程創建時創建web.xml:用Eclipse新建一個web項目沒有自動生成web.xml 在創建maven工程時,大多沒有創建web.xml文件,web.xml路徑:src/main/webapp/EWB-INF/web.xml 創建web.xml:右鍵項目——>javaEE tools——>點擊第二個Generate
利用eclipse新建的java web項目沒有web.xml文件怎麼辦?
利用eclipse新建的java web項目沒有web.xml文件怎麼解決? 解決辦法: 1、右鍵項目名稱-》Java EE Tools-》Generate Deployment descriptor stub 即可生成web.xml文件。
MyEclipse新建的Web項目沒有web.xml
MyEclipse新建的Web項目沒有web.xml 是因為創建項目時沒有選擇Generate web.xml deployment descriptor這一項。 下面是步驟 首先創建項目 這一步點擊next 再點擊next 勾選Generate web.xml deployment descriptor,完成後點擊Finish,即可完成創建。 檢查一下,在WebRoot文件夾下打開
myeclipse生成web.xml文件
MyEclipse中新建web項目時,如果一開始新建項目沒有選中生成web.xml文件,在WebRoot->WEB-INF文件夾下就沒有web.xml文件。 那如果後面又需要用到web.xml該怎麼辦呢?難道需要重新建項目?其實是不用的。 非常簡單的方法就是在需要添加web.xml文件的項目上右鍵點擊,依次選擇MyEclipse->Generate Deployment
D. 如何通過web.xml載入自定義的xml文件
首先創建一個類
public class ContextInitListener implements ServletContextListener
使得該類成為一個監聽器。用於監聽整個容器生命周期的,主要是初始化和銷毀的。
類創建後要在web.xml配置文件中增加一個簡單的監聽器配置,即剛才我們定義的類。
Xml代碼
<listener>
<!-- lang: xml -->
<description>ServletContextListener</description>
<!-- lang: xml -->
<listener-class>com.test.web.filter.ContextInitListener</listener-class>
<!-- lang: xml -->
</listener>
配置好監聽器後我們開始編寫ContextInitListener 的代碼。實現介面後會自動生成兩個方法,初始化和銷毀,我們就只貼出這個吧,另一個沒什麼用。web項目通常來說,一般來說相對路徑是在WEB-INF/classes,獲取該路徑下的文件,最好用getClass().getResourceAsStream(「/baseconfig.properties」);比較簡單。
Java代碼
@Override
public void contextInitialized(ServletContextEvent sce) {
Properties props = new Properties();
InputStream inputStream = null;
try {
inputStream = getClass().getResourceAsStream("/baseconfig.properties");
props.load(inputStream);
String tempPath = (String) props.get("path");
} catch (IOException ex) {
ex.printStackTrace();
}
}
E. web項目中如何讀取配置文件config.xml
servlet初始化的時候會去讀取web.xml,把這個文件的路徑配置到web.xml里。或者你在web.xml里載入個初始化類,這個類去載入config.xml
F. web.xml配置cookie
正確。web.xml配置cookie是正確的,這個的作用是讓頁面的js無法讀取到cookie, 是一種保護措施。web.xml是web項目的配置文件,一般的web工程都會用到web.xml來配置,主要用來配置Listener,Filter,Servlet等。