Web應(yīng)用配置文件和目錄

web部署描述符

<servlet>
    <!-- Servlet在web部署描述符中名稱,可以自定義但要求唯一 -->
    <servlet-name>HelloServlet</servlet-name>
    <!-- 具體處理請(qǐng)求和響應(yīng)的Servlet,要求完整路徑名 -->
    <servlet-class>isgod.niezhic.servlet.HelloServlet</servlet-class>
    <!-- 該節(jié)點(diǎn)不存在時(shí)(默認(rèn)值為 -1 )赊锚,
         表示該Servlet在web容器啟動(dòng)的時(shí)候是不加載的确徙,
         聲明該標(biāo)簽并定義大于0的值就是為了使該Serlvet在web容器啟動(dòng)的時(shí)候就加載,
         數(shù)字的大小表示不同Servlet加載的順序嘹屯,
         當(dāng)數(shù)字大小一致的時(shí)候則依照在web.xml中定義的順序加載-->
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <!-- 要求和相對(duì)應(yīng)的servlet-name一致 -->
    <servlet-name>HelloServlet</servlet-name>
    <!-- 定義當(dāng)前資源路徑名 -->
    <url-pattern>/hello</url-pattern>
</servlet-mapping>
web部署描述符中定義URL
一個(gè)請(qǐng)求的URL實(shí)際上由三個(gè)部分組成:contextPath + servletPath + pathInfo,可以使用HttpServletRequest的getRequestURL()來獲取
contextPath可以使用HttpServletRequest的getContextPath()來獲取
servletPath可以使用HttpServletRequest的getServletPath()來獲取,但是當(dāng)URL模式為 /* 和 "" 的時(shí)候映凳,getServletPath()取得路徑為空字符串
pathInfo可以使用HttpServletRequest的getPathInfo()來獲取,沒有額外路徑信息時(shí)返回null

常見的URL模式:

1. 以 / 開頭以 /* 結(jié)尾的模式邮破,如 /account/* 表示訪問帳戶目錄下中的資源文件: /account/open诈豌、/account/close
2. 以 *. 開頭的模式,如 *.view 表示處理所有以view結(jié)尾請(qǐng)求
3. 完全匹配模式抒和,如 /tester/test 表示URL中除了請(qǐng)求參數(shù)部分必須是 /tester/test

示例Servlet代碼矫渔,如下:
/**
 * 請(qǐng)求URL路徑解析
 */
public class URLPathServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        // 完整的請(qǐng)求URL路徑,輸出:http://localhost:8080/learnServlet/url/path/233
        out.println(request.getRequestURL() + "<br/>");
        // 當(dāng)前環(huán)境根路徑摧莽,輸出:/learnServlet
        out.println(request.getContextPath() + "<br/>");
        // 處理Servlet路徑庙洼,輸出:/url/path
        out.println(request.getServletPath() + "<br/>");
        // 額外路徑信息,輸出:/233
        out.println(request.getPathInfo() + "<br/>");
    }
}

WEB-INF目錄

1. 該目錄名稱固定镊辕,放置在該目錄中的文件對(duì)外界是封閉的油够,客戶端無法直接獲取這些資源,只有通過處理相應(yīng)Servlet的請(qǐng)求來獲取
2. web.xml:web應(yīng)用的部署表述文件丑蛤,名稱固定叠聋,路徑也一定是在WEB-INF中

web-fragment.xml

在Servlet3.0中,如果一個(gè)JAR文件中有使用標(biāo)注的Servlet受裹,Web容器也可以加載該類
在Servlet3.0中碌补,Web應(yīng)用可以使用JAR來進(jìn)行模塊化部署,不僅是Servlet棉饶,監(jiān)聽器厦章、過濾器等都可以定義在JAR文件中
在JAR文件中的Serlvet、監(jiān)聽器照藻、過濾器等也擁有自己的部署表述符袜啃,那就是web-fragment.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-fragment 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-fragment_3_0.xsd"
              version="3.0">

</web-fragment>
web-fragment.xml的根標(biāo)簽是<web-fragment></web-fragment>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市幸缕,隨后出現(xiàn)的幾起案子群发,更是在濱河造成了極大的恐慌晰韵,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件熟妓,死亡現(xiàn)場離奇詭異雪猪,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)起愈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門只恨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人抬虽,你說我怎么就攤上這事官觅。” “怎么了阐污?”我有些...
    開封第一講書人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵休涤,是天一觀的道長吞杭。 經(jīng)常有香客問我稚矿,道長,這世上最難降的妖魔是什么骚勘? 我笑而不...
    開封第一講書人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任隘膘,我火速辦了婚禮疑故,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘弯菊。我一直安慰自己纵势,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開白布管钳。 她就那樣靜靜地躺著钦铁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪才漆。 梳的紋絲不亂的頭發(fā)上牛曹,一...
    開封第一講書人閱讀 49,821評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音醇滥,去河邊找鬼黎比。 笑死,一個(gè)胖子當(dāng)著我的面吹牛鸳玩,可吹牛的內(nèi)容都是我干的阅虫。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼不跟,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼颓帝!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤购城,失蹤者是張志新(化名)和其女友劉穎吕座,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體工猜,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡米诉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了篷帅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拴泌,死狀恐怖魏身,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蚪腐,我是刑警寧澤箭昵,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站回季,受9級(jí)特大地震影響家制,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜泡一,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一颤殴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鼻忠,春花似錦涵但、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至塑娇,卻和暖如春澈侠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背埋酬。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來泰國打工哨啃, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人奇瘦。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓棘催,卻偏偏與公主長得像,于是被迫代替她去往敵國和親耳标。 傳聞我的和親對(duì)象是個(gè)殘疾皇子醇坝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 一個(gè)Web應(yīng)用是一個(gè)Web服務(wù)器上眾多資源的集合,它包括了servlets,HTML頁面呼猪,類画畅,和其它組成一個(gè)完整應(yīng)...
    Lucky_Micky閱讀 1,713評(píng)論 0 2
  • 本章聊一聊ServletContext 3.0規(guī)范中定義的注解以及在web應(yīng)用中使用的框架和庫的可插拔性的提升。 ...
    Lucky_Micky閱讀 6,024評(píng)論 0 3
  • 一.手動(dòng)構(gòu)建Web應(yīng)用 手動(dòng)建立一個(gè)Web應(yīng)用宋距,一般按照以下步驟執(zhí)行: 在任意目錄下新建一個(gè)文件夾轴踱,這里以webD...
    to0simple閱讀 764評(píng)論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)谚赎,斷路器淫僻,智...
    卡卡羅2017閱讀 134,633評(píng)論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,773評(píng)論 6 342