1. 程式人生 > >SSH框架中的配置檔案值web.xml

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>
<!--自定義檔名可以在web.xml里加入contextConfigLocation這個context引數-->
<param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param>
在啟動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/index.html-->  
      <url-pattern>/druid/*</url-pattern>
  </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