SSH框架中的配置檔案值web.xml
Web.xml
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
xml檔案裡面的所有內容都符合xml語法規範
屬性,其中xmlns表示名稱空間,xmlns="http://maven.apache.org/POM/4.0.0" 這表示預設名稱空間
xmlns其實是XML Namespace的縮寫,可譯為“XML名稱空間”
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 這個名稱空間裡面的元素或者屬性就必須要以xsi:這種方式來寫,比如schemaLocation就是他的一個屬性,所以寫成xsi:schemaLocation而預設名稱空間不帶類似xsi這種
其實xml標籤名稱有個專業叫法叫做QName,而如果沒有前面的xsi:這種一般叫做NCName。所以你看mvn裡面的<dependency>這種就是預設名稱空間下面的元素
最後那一行就表示把定義這個名稱空間的schema檔案給引用進來,好讓eclipse這型別工具能夠解析和驗證你的xml檔案是否符合語法規範。等同於<import namespace="xxx" schemaLocation="xxx.xsd"/>。
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param>
<param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param><!--自定義檔名可以在web.xml里加入contextConfigLocation這個context引數-->
在啟動Web容器時,自動裝配spring applicationContext.xml的配置資訊。因為它實現了ServletContextListener這個介面,在web.xml配置這個監聽器,啟動容器時,就會預設執行它實現的方法。在ContextLoaderListener中關聯了ContextLoader這個類,所以整個載入配置過程由ContextLoader來完成;<!-- 配置druid的servlet --> <servlet> <servlet-name>DruidStatView</servlet-name> <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>DruidStatView</servlet-name>
<servlet> <servlet-name>DruidStatView</servlet-name> <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>DruidStatView</servlet-name><url-pattern>/druid/*</url-pattern><!--url-pattern來訪問內建監控頁面,如果是上面的配置,內建監控頁面的首頁是/druid/index.html-->
</servlet-mapping>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
<!-- 去除對druid的攔截 -->
<init-param>
<param-name>excludedPages</param-name>
<param-value>/druid*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping> druid監控功能,https://github.com/alibaba/druid
struts2
基於MVC設計模式的Web應用框架,本質上相當於一個servlet,
在MVC設計模式中,Struts2作為控制器(Controller)來建立模型與檢視的資料互動。
Struts 2以WebWork為核心,採用攔截器的機制來處理使用者的請求,這樣的設計也使得業務邏輯控制器能夠與ServletAPI完全脫離開
<dispatcher></dispatcher>必須寫在filter-mapping的最後,dispatcher的前提條件當然是要先滿足url-pattern,然後dispatcher有四種可能的屬性,REQUEST、FOWARD、INCLUDE、ERROR,意如其表,滿足條件的會走這個過濾器,如上一次請求(request、forward)便會走指定的過濾器
專案中,JSP用到了:<%@ include file="../fontPage/menu.jsp"%>原來這個include指令,引申出include動作:<jsp:include page="menu.jsp" />,jsp指令是在menu.jsp被轉換成Servlet前,將menu.jsp程式碼插入其中;jsp動作是在menu.jsp被請求時,將次級頁面menu.jsp包含進來,對滴差別是呼叫時間不同 (兩種include方式及filter中的dispatcher解析)
jsp本質就是servlet
<login-config> <auth-method>BASIC</auth-method> </login-config>
BASIC驗證機制:指出採用basic驗證方式,並指出了對於訪問/member/*下的檔案時,都需要獲得 member角色的授權。此外:form表單驗證 http://blog.csdn.net/lisheng19870305/article/details/40819481
參考:
http://blog.csdn.net/muzizhuben/article/details/9135275
http://www.cnblogs.com/ansen/articles/2017360.html
https://baike.baidu.com/item/Struts%202/2187934?fr=aladdin&fromid=10711345&fromtitle=Struts2
http://blog.csdn.net/jethai/article/details/52345135
http://www.cnblogs.com/xrq730/p/4929029.html