<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      從web.xml開始

      有的時候會困惑,web.xml到底是什么?為什么JavaEE要從web.xml開始呢?嗯,當把這個那個框架拋開,有些基礎的問題是非常有趣的。

      web.xml不是必須的。你不用它一樣可以寫出web程序。

      web.xml文件是用來配置:welcome、listener、servlet、filter等的。當你的web工程沒用到這些,你可以不寫web.xml文件。

      進入正題。

      Spring 提供 ServletContextListener 的一個實現類 ContextLoaderListener,該類可以作為 listener 使用,它會在創建時自動查找 WEB-INF/下的applicationContext.xrnl 文件。

      <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>

      如果有多個Spring配置文件需要載入,則考慮使用context-param。

      由于ContextLoaderListener加載時,會查找名為contextConfigLocation的參數,配置context-param時參數名字應該是contextConfigLocation。

      <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:applicationContext.xml</param-value>
      </context-param>

      Spring MVC 的Servlet,它將加載WEB-INF/123web-servlet.xml 的配置文件,以啟動Spring MVC模塊。

      <servlet>
      <servlet-name>123web</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet
      </servlet-class>
      <load-on-startup>2</load-on-startup>
      </servlet>

      <servlet-mapping>
      <servlet-name>123web</servlet-name>
      <url-pattern>*.do</url-pattern>
      </servlet-mapping>

      session-timeout元素用來指定默認的會話超時時間間隔,以分鐘為單位。該元素值必須為整數。如果session-timeout元素的值為零或負數,則表示會話將永遠不會超時。

      <session-config>
      <session-timeout>30</session-timeout>
      </session-config>

      404及welcome頁面:

      <welcome-file-list>
      <welcome-file>index.do</welcome-file>
      </welcome-file-list>
      <error-page>
      <error-code>404</error-code>
      <location>/404.jsp</location>
      </error-page>

      其中關于web.xml的一些有意思的細節問題:

      @加載順序

      加載順序與它們在 web.xml 文件中的先后順序無關。即不會因為 filter 寫在 listener 的前面而會先加載 filter。最終得出的結論是:listener -> filter -> servlet,同時還存在著這樣一種配置節:context-param,它用于向 ServletContext 提供鍵值對,即應用程序上下文信息。我們的 listener, filter 等在初始化時會用到這些上下文中的信息,那么 context-param 配置節是不是應該寫在 listener 配置節前呢?實際上 context-param 配置節可寫在任意位置,因此真 正的加載順序為:context-param -> listener -> filter -> servlet

      @Mapping規則

      當一個請求發送到servlet容器的時候,容器先會將請求的url減去當前應用上下文的路徑作為servlet的映射url,比如我訪問的是http://localhost/test/aaa.html,我的應用上下文是test,容器會將http://localhost/test去掉,剩下的/aaa.html部分拿來做servlet的映射匹配。這個映射匹配過程是有順序的,而且當有一個servlet匹配成功以后,就不會去理會剩下的servlet了(filter不同,后文會提到)。其匹配規則和順序如下:

      1. 精確路徑匹配。例子:比如servletA 的url-pattern為 /test,servletB的url-pattern為 /* ,這個時候,如果我訪問的url為http://localhost/test ,這個時候容器就會先 進行精確路徑匹配,發現/test正好被servletA精確匹配,那么就去調用servletA,也不會去理會其他的servlet了。

      2. 最長路徑匹配。例子:servletA的url-pattern為/test/*,而servletB的url-pattern為/test/a/*,此時訪問http://localhost/test/a時,容器會選擇路徑最長的servlet來匹配,也就是這里的servletB。

      3. 擴展匹配,如果url最后一段包含擴展,容器將會根據擴展選擇合適的servlet。例子:servletA的url-pattern:*.action

      @不同的映射

      以”/’開頭和以”/*”結尾的是用來做路徑映射的。

      以前綴”*.”開頭的是用來做擴展映射的。

      所以,為什么定義”/*.action”這樣一個看起來很正常的匹配會錯?因為這個匹配即屬于路徑映射,也屬于擴展映射,導致容器無法判斷。

      posted @ 2011-05-03 21:56  abstractwind  閱讀(805)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产91丝袜在线观看| 国产午夜亚洲精品久久| 青川县| 色悠悠久久精品综合视频| 国产精品久久久久7777| 男女激情一区二区三区| 中文字幕日韩国产精品| 在线免费播放亚洲自拍网| 亚洲精品天天影视综合网| 免费a级毛片无码av| 久久亚洲精品人成综合网| 亚洲 制服 丝袜 无码| 88国产精品视频一区二区三区| 四虎在线永久免费看精品| 四虎国产精品久久免费精品| 国产在线98福利播放视频| 成全我在线观看免费第二季| 风骚少妇久久精品在线观看| 国产亚欧女人天堂AV在线| 中文字幕日韩有码国产| 日韩有码中文字幕国产| 精品国产一区AV天美传媒| 梧州市| 精品国产成人午夜福利| 久久精品娱乐亚洲领先| 国产免费丝袜调教视频| 神马久久亚洲一区 二区| 日韩在线视频线观看一区| 国产精品人成视频免费国产 | 午夜精品久久久久久久爽| 成人精品色一区二区三区| 久久天天躁狠狠躁夜夜躁| 少妇性bbb搡bbb爽爽爽欧美| 国产综合色在线精品| 九江市| 人妻中文字幕av资源站| 精品欧洲av无码一区二区| 精品久久久久久无码不卡| 欧美日韩一区二区三区视频播放 | 日韩a∨精品日韩在线观看| 一级片一区二区中文字幕|