电竞比分网-中国电竞赛事及体育赛事平台

分享

web工程中的web.xml

 杰出天下 2011-04-29
web工程中的web.xml文件有什么作用呢?它是每個(gè)web.xml工程都必須的嗎?
一個(gè)web中完全可以沒有web.xml文件,也就是說,web.xml文件并不是web工程必須的。

那什么時(shí)候需要,什么時(shí)候可以不需要呢?
要想回答上面的問題,得先了解web.xml文件使用來干什么的。web.xml文件是用來配置:歡迎頁、servlet、filter等的。當(dāng)你的web工程沒用到這些時(shí),你可以不用web.xml文件來配置你的web工程。
那么web.xml能做的所有事情都有那些?
其實(shí),web.xml的模式(Schema)文件中定義了多少種標(biāo)簽元素,web.xml中就可以出現(xiàn)它的模式文件所定義的標(biāo)簽元素,它就能擁有定義出來的那些功能。web.xml的模式文件是由Sun公司定義的,每個(gè)web.xml文件的根元素<web-app>中,都必須標(biāo)明這個(gè)web.xml使用的是哪個(gè)模式文件。如:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
 xmlns="http://java./xml/ns/javaee"
 xmlns:xsi="http://www./2001/XMLSchema-instance"
 xsi:schemaLocation="http://java./xml/ns/javaee
 http://java./xml/ns/javaee/web-app_2_5.xsd">
</web-app>
    而且web.xml的模式文件中定義的標(biāo)簽并不是定死的,模式文件也是可以改變的,一般來說,隨著web.mxl模式文件的版本升級,里面定義的功能會(huì)越來越復(fù)雜,也即標(biāo)簽元素的種類會(huì)越來越多,但有些是不常用的,我們只需記住一些常用的就可以了。

    下面列出web.xml常用的標(biāo)簽元素及這些標(biāo)簽元素的功能:
1、指定歡迎頁面,例如:
<welcome-file-list>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index1.jsp</welcome-file>
  </welcome-file-list>
上面的例子指定了2個(gè)歡迎頁面,顯示時(shí)按順序從第一個(gè)找起,如果第一個(gè)存在,就顯示第一個(gè),后面的不起作用。如果第一個(gè)不存在,就找第二個(gè),以此類推。
關(guān)于歡迎頁面:
    訪問一個(gè)網(wǎng)站時(shí),默認(rèn)看到的第一個(gè)頁面就叫歡迎頁,一般情況下是由首頁來充當(dāng)歡迎頁的。一般情況下,我們會(huì)在web.xml中指定歡迎頁。但web.xml并不是一個(gè)Web的必要文件,沒有web.xml,網(wǎng)站仍然是可以正常工作的。只不過網(wǎng)站的功能復(fù)雜起來后,web.xml的確有非常大用處,所以,默認(rèn)創(chuàng)建的動(dòng)態(tài)web工程在WEB-INF文件夾下面都有一個(gè)web.xml文件。
       對于tomcat來說,當(dāng)你只指定一個(gè)web的根名,沒有指定具體頁面,去訪問時(shí)一個(gè)web時(shí), 如果web.xml文件中配置了歡迎頁,那么就返回指定的那個(gè)頁面作為歡迎頁,而在文中沒有web.xml文件,或雖然有web.xml,但web.xml也沒指定歡迎頁的情況下,它默認(rèn)先查找index.html文件,如果找到了,就把index.html作為歡迎頁還回給瀏覽器。如果沒找到index.html,tomcat就去找index.jsp。找到index.jsp就把它作為歡迎頁面返回。而如果index.html和index.jsp都沒找到,又沒有用web.xml文件指定歡迎頁面,那此時(shí)tomcat就不知道該返回哪個(gè)文件了,它就顯示The requested resource (/XXX) is not available的頁面。其中XXX表示web的根名。但如果你指定了具體頁面,是可以正常訪問的。
2、命名與定制URL。我們可以為Servlet和JSP文件命名并定制URL,其中定制URL是依賴一命名的,命名必須在定制URL前。下面拿serlet來舉例:
(1)、為Servlet命名:
<servlet>
    <servlet-name>servlet1</servlet-name>
    <servlet-class>net.test.TestServlet</servlet-class>
</servlet>
(2)、為Servlet定制URL、
<servlet-mapping>
    <servlet-name>servlet1</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

3、定制初始化參數(shù):可以定制servlet、JSP、Context的初始化參數(shù),然后可以再servlet、JSP、Context中獲取這些參數(shù)值。下面哪servlet來舉例:
<servlet>
    <servlet-name>servlet1</servlet-name>
    <servlet-class>net.test.TestServlet</servlet-class>
    <init-param>
          <param-name>userName</param-name>
          <param-value>Tommy</param-value>
    </init-param>
    <init-param>
          <param-name>E-mail</param-name>
          <param-value>Tommy@163.com</param-value>
    </init-param>
</servlet>
經(jīng)過上面的配置,在servlet中能夠調(diào)用getServletConfig().getInitParameter("param1")獲得參數(shù)名對應(yīng)的值。
4、指定錯(cuò)誤處理頁面,可以通過“異常類型”或“錯(cuò)誤碼”來指定錯(cuò)誤處理頁面。
<error-page>
    <error-code>404</error-code>
    <location>/error404.jsp</location>
</error-page>
-----------------------------
<error-page>
    <exception-type>java.lang.Exception<exception-type>
    <location>/exception.jsp<location>
</error-page>
5、設(shè)置過濾器:比如設(shè)置一個(gè)編碼過濾器,過濾所有資源
<filter>
    <filter-name>XXXCharaSetFilter</filter-name>
    <filter-class>net.test.CharSetFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>XXXCharaSetFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
6、設(shè)置監(jiān)聽器:
<listener>
<listener-class>net.test.XXXLisenet</listener-class>
</listener>
7、設(shè)置會(huì)話(Session)過期時(shí)間,其中時(shí)間以分鐘為單位,假如設(shè)置60分鐘超時(shí):
<session-config>
<session-timeout>60</session-timeout>
</session-config>
除了這些標(biāo)簽元素之外,還可以往web.xml中添加那些標(biāo)簽元素呢,那些標(biāo)簽元素都能起什么作用呢?我們只要去查看web.xml的模式文件就能知道。
 
本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/wo20055812/archive/2011/02/14/6183916.aspx

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多