struts1 在web.xml中的配置

來源:互聯網
上載者:User
web.xml檔案對於配置任何Java Web應用都必需的。
(1) 配置Struts的ActionServlet 
      <servlet>元素來聲明ActionServlet
      <servlet-name>元素:用來定義Servlet的名稱
      <servlet-class>元素:用來指定Servlet的完整類名

    <servlet>
   <servlet-name>action</servlet-name>
   <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
   </servlet>

  還要配置<servlet-mapping>元素,它用來指定ActionServlet可以處理哪些URL
  <servlet-mapping>
  <servlet-name>action</servlet-name>
  <url-pattern>*.do</url-pattern>
  </servlet-mapping> 

        注意:(1)<servlet-mapping>和<servlet>中的<servlet-name>?</servlet-name>的要填寫一致,它就是一根線,把<servlet-mapping>和<servlet>聯結在一起的。
                (2)在Struts架構中只能有一個Servlet,因為Servlet支援多線程。而<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>中的ActionServlet是在Struts.jar包中的.在匯入Struts包時會匯入。
                (3)在顯示層所有以*.do為副檔名提交的URL,都會交由這個Servlet來處理。*.do可以改寫成你想要的任何形式,例如:/do/* ,此時該Servlet會處理所有以"/do"為首碼的URL,如http://localhost:8080/helloapp/do/helloWord,
擴充 (1)我們可以繼承 org.apache.struts.action.ActionServlet 得到我們可以擴充的子類,在子類中重寫一個方法init()。這時<servlet-class>?</servlet-class>中的。是我們建立的類的路徑,同樣只能存在一個。 
       
(2)聲明ActionServlet的初始化參數
    初始化參數用來對Servlet的運行時環境進行初始配置。<servlet>的<init-param>子項目用於配置Servlet初始化參數。 
      config :以相對路徑的方式指明Struts應用程式的設定檔位置,如不設定,則預設值為/WEB-INF/struts-config.xml
    debug : 設定Servlet的debug層級,控制日誌記錄的詳細程度。預設為0,記錄相對最少的日誌資訊。
    detail : 設定Digester的debug層級,Digester是Struts架構所使用的用來解析xml設定檔的一個架構,通過此設定,可以查看不同詳細等級的解析日誌。預設為0,記錄相對最少的日誌資訊。
    <load-on-startup>。</load-on-startup>中。號的值是此ActionServlet在伺服器開啟時載入的次序,數值越低,越先載入。

      <servlet>
      <servlet-name>action</servlet-name>
      <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
      <init-param>
        <param-name>config</param-name>
        <param-value>/WEB-INF/struts-config.xml</param-value>
      </init-param>
      <init-param>
        <param-name>debug</param-name>
        <param-value>3</param-value>
      </init-param>
      <init-param>
        <param-name>detail</param-name>
        <param-value>3</param-value>
       </init-param>
      <load-on-startup>0</load-on-startup>
</servlet>

擴充:(1)當伺服器啟動後,載入ActionServlet,而ActionServlet會調用相關的方法去,會根據它下面的參數的初始值,對這個ActionServlet中的參數時行初始化
              (2)當多人協作開發項目時可以對Strutst的設定檔進行適當的擴充,但必須為config開頭。如
                <init-param>
        <param-name>config/XXXXXXXXX</param-name>
        <param-value>/WEB-INF/XXXXX.xml</param-value>
         </init-param>
               
(3) 配置歡迎檔案清單
        當客戶訪問Web應用時,如果僅僅給出Web應用的Root URL,沒有指定具體的檔案名稱。Web容器會自動調用Web應用的歡迎檔案。<welcome-file-list>是用來設定此項.
        <welcome-file-list>
     <welcome-file>welcome.jsp</welcome-file>
     </welcome-file-list>
          說明:在<welcome-file-list> 下可以有多個<welcom-file>。Web容器會依次尋找歡迎介面,直到找到為止。但如果不存在會向用戶端返回”HTTP 404 NOT Found“錯誤資訊。
         
          由於在<welcome-file-list>元素中不能配置Servlet映射,則不能直接把Struts的Action作為歡迎檔案。但可以通過Struts中的全域的(global)轉寄項來配置。
          A:welcome.jsp頁面(可換檔案名稱)
          <%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic"%>
          <html>
          <body>
          <logic:forward name="welcome"/>
          </body>
          </html>
          B: web.xml
          <welcome-file-list>
          <welcome-file>welcome.jsp</welcome-file>
          </welcome-file-list>
          C: struts-config.xml
          <global-forwards>
          <forward name="welcome" path="hello.do">
          </global-forwards>
            我自已理解,僅供參考
          運行機制:當伺服器啟動時還是會載入 B中<welcome-file>welcome.jsp</welcome-file>中的welcome.jsp,然後讀到(A)welcome.jsp中的 <logic:forward name="welcome"/>,接下來會轉到C中的<forward name="welcome" path="HelloWorld.do">,這是由於它是以.do(hello.do)結尾的,所以它會找到C檔案中的<action>相配配的,最後在轉到這個<action>的JSP頁面。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.