1. 程式人生 > >Struts 專案中web.xml檔案配置

Struts 專案中web.xml檔案配置

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提交的,都會過個Servlet。*.do可以改寫成你想要的任何形式。例如:/do/*
擴充套件 (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頁面。
      執行錯誤示例:

(a)把C中的<forwrod>改成<forward name="welcome" path="liusong.do"> liusong.do根本就不成在。

(b)把C中的 <forward name="welcome" path="hello"> 因為伺服器不知是hello.do還是hello.jsp不能轉向


 (c)把B中的 <welcome-file >/hello.do</welcome-file>因為它不會呼叫Servlet類,

 執行正確示例:

 (d)把C中的<forward name="welcome" path="hello.jsp">   執行成功
  (e)把B中的<welcome-file >/hello.jsp</welcome-file>   執行成功
                  

(4)配置錯誤處理
Struts框架中不能處理所有的錯誤或異常。當Struts框架發生不能處理所有的錯誤或異常時,就把錯誤拋給Web容器。在預設情況下,Web容器會向用戶瀏覽器直接返回原始的錯誤,為了避免可以使用<error-page>。
<erro-page>
<error-code>4040</error-code>
<location>/commmon/404.jsp</location>
</error-page>
<erro-page>
<error-code>4040</error-code>
<location>/commmon/404.jsp</location>
</error-page>

Weg容器捕獲的Java異常配置<error-page>,這時需要設定<exception-type>子元素,它用於指定Java異常類。Web容器可能捕獲如下的異常:
RuntimeException 或 Error
ServletException 或它的子類
IOException 或它的子類

<error-page>
<exception-type>javax.servlet.ServletException</exception-type>
<location>/system_error.jsp</location>
</error-page>
<error-page>
<exception-type>java.io.IOException</exception-type>
<location>/system_ioerror.jsp</location>
</error-page>

(5)配置Struts標籤庫
Struts框架提供了一些實用的客戶化標籤標籤庫,如果在應用中使用可以在web.xml中配置
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
由於Eclipse對<taglib>會產生錯誤,所以
<jsp-config>  
<taglib>  
  <taglib-uri>/WEB-INF/validator-user.tld</taglib-uri>  
  <taglib-location>/WEB-INF/validator-user.tld</taglib-location>  
</taglib>  
</jsp-config>
 

相關推薦

Struts 專案web.xml檔案配置

web.xml檔案對於配置任何Java Web應用都必需的。(1)配置Struts的ActionServlet <servlet>元素來宣告ActionServlet<servlet-name>元素:用來定義Servlet的名稱<servlet-

關於專案web.xml配置檔案裡面的spring的配置contextConfigLocation

如果沒有接觸過公司專案的小白或者剛入職不久的菜鳥,可能一直認為在web.xml中配置spring肯定是如下圖這樣的,/WEB-INF/classes/applicationContext.xml 

springmvc 專案完整示例07 設定配置整合springmvc springmvc所需jar包springmvc web.xml檔案配置

前面主要是後臺程式碼,spring以及mybatis的整合 下面主要是springmvc用來處理請求轉發,展現層的處理 之前所有做到的,完成了後臺,業務層和持久層的開發完成了 接下來就是展現層了 有很多的mvc框架,這裡我們用springMVC 首先還是需要jar包 我們既然是web專案了

struts2專案web.xml配置

struts2.5中<filter-class>使用org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter替換org.apache.struts2.dispatcher.ng.filt

web.xml檔案配置出現的各種問題

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"

Eclipse新建立的Maven專案沒有web.xml檔案

在使用eclipse建立新的的maven專案時沒有自動建立web.xml檔案會報錯。 1.手動建立WEB-INF/web.xml 2.通過eclipse工具建立 右鍵點選所建立的專案,選擇 Java EE Tools 選擇Generate Deployment Desc

SpringMVCweb.xml配置理解

在web.xml種這樣配置 <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </list

tomcatserver.xml檔案配置解析

server.xml配置簡介          下面是這個檔案中的基本配置資訊,更具體的配置資訊見tomcat的文件          server:      

idea解決建立maven專案web.xml檔案版本過低的情況

前言 之前介紹瞭如何在idea中部署maven的web專案,但是建立maven專案之後,發現一個小瑕疵: <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

SpringMVC專案 web.xml模板

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLS

spring框架web.xml配置詳解

1 定義頭和根元素   部署描述符檔案就像所有XML檔案一樣,必須以一個XML頭開始。這個頭宣告可以使用的XML版本並給出檔案的字元編碼。 DOCYTPE宣告必須立即出現在此頭之後。這個宣告告訴伺服器適用的servlet規範的版本(如2.2或2.3)並指定管理此檔案其餘部

struts2 2.5以上版本安裝web.xml配置(包括核心過濾器filter)

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-

Spring專案XML檔案熱載入程式碼實現

前言: 平時我們進行Spring專案開發的時候,經常需要因為XML的改變而重啟伺服器,假如專案較大的時候,重啟將會非常耗時。最近編寫的webschool框架需要用到較多的XML檔案進行配置,在這裡參考公司程式碼,實現了對XML檔案的熱載入。 效果 每

tomcat的web.xml檔案配置

Tomcat web.xml配置的常用元素<web-app><display-name></display-name> // web應用的名字<description></description>   // web應

Springmvcweb.xml配置詳解

 <!-- springMVC核心配置 --> <servlet>  <servlet-name>dispatcherServlet</servlet-name>  <servlet-class>org.springframework.web.ser

javaweb前端表單請求路徑要和後端web.xml檔案配置一定要一致

這兩天跟著老師做一個小作品,作品裡面設定了登入功能和監聽器功能,其中在登入功能中使用了監聽器監聽功能監聽使用者的登入,下面是Servlet中判斷登入邏輯的一個方法: private void login(HttpServletRequest request, HttpSer

servlet---web.xml檔案配置路徑

Servlet的對映路徑: 在web.xml檔案中: <servlet-mapping>    <servlet-name>FirstServlet</servlet-name>//servlet的內部名稱   

ServletWeb.xml配置詳解(一)

1 定義頭和根元素部署描述符檔案就像所有XML檔案一樣,必須以一個XML頭開始。這個頭宣告可以使用的XML版本並給出檔案的字元編碼。DOCYTPE宣告必須立即出現在此頭之後。這個宣告告訴伺服器適用的servlet規範的版本(如2.2或2.3)並指定管理此檔案其餘部分內容的語法的DTD(Document Typ

maven新建ssm專案pom.xml檔案內容

1、開發工具使用時的idea <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi

Maven專案pom.xml檔案報錯以及專案編譯錯誤

pom.xml報錯:Referenced file contains errors (http://maven.apache.org/maven-v4_0_0.xsd). For more infor