Java Spring MVC項目搭建(二)——項目配置

一、站點配置文件web.xmlhtml

每個Spring MVC 項目都必須有一個站點配置文件web.xml,他的主要功能嗎....有一位大哥已經整理的很好,我借來了,你們看看:java

引用博客地址: http://www.cnblogs.com/yqskj/articles/2233061.htmlweb

複製代碼

一、指定歡迎頁面,例如: 
<welcome-file-list> 
  <welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>index1.jsp</welcome-file> 
  </welcome-file-list> 
PS:指定了2個歡迎頁面,顯示時按順序從第一個找起,若是第一個存在,就顯示第一個,後面的不起做用。若是第一個不存在,就找第二個,以此類推。 

關於歡迎頁面: 

    訪問一個網站時,默認看到的第一個頁面就叫歡迎頁,通常狀況下是由首頁來充當歡迎頁的。通常狀況下,咱們會在web.xml中指定歡迎頁。但 web.xml並非一個Web的必要文件,沒有web.xml,網站仍然是能夠正常工做的。只不過網站的功能複雜起來後,web.xml的確有很是大用處,因此,默認建立的動態web工程在WEB-INF文件夾下面都有一個web.xml文件。


二、命名與定製URL。咱們能夠爲Servlet和JSP文件命名並定製URL,其中定製URL是依賴命名的,命名必須在定製URL前。下面拿serlet來舉例: 
(1)、爲Servlet命名: 
<servlet> 
    <servlet-name>servlet1</servlet-name> 
    <servlet-class>org.whatisjava.TestServlet</servlet-class> 
</servlet> 

(2)、爲Servlet定製URL、 
<servlet-mapping> 
    <servlet-name>servlet1</servlet-name> 
    <url-pattern>*.do</url-pattern> 
</servlet-mapping>



三、定製初始化參數:能夠定製servlet、JSP、Context的初始化參數,而後能夠再servlet、JSP、Context中獲取這些參數值。 

下面用servlet來舉例: 
<servlet> 
    <servlet-name>servlet1</servlet-name> 
    <servlet-class>org.whatisjava.TestServlet</servlet-class> 
    <init-param> 
          <param-name>userName</param-name> 
          <param-value>Daniel</param-value> 
    </init-param> 
    <init-param> 
          <param-name>E-mail</param-name> 
          <param-value>125485762@qq.com</param-value> 
    </init-param> 
</servlet> 
通過上面的配置,在servlet中可以調用getServletConfig().getInitParameter("param1")得到參數名對應的值。 



四、指定錯誤處理頁面,能夠經過「異常類型」或「錯誤碼」來指定錯誤處理頁面。 
<error-page> 
    <error-code>404</error-code> 
    <location>/error404.jsp</location> 
</error-page> 
----------------------------- 
<error-page> 
    <exception-type>java.lang.Exception<exception-type> 
    <location>/exception.jsp<location> 
</error-page> 



五、設置過濾器:好比設置一個編碼過濾器,過濾全部資源 
<filter> 
    <filter-name>XXXCharaSetFilter</filter-name> 
    <filter-class>net.test.CharSetFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>XXXCharaSetFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 



六、設置監聽器: 
<listener> 
<listener-class>net.test.XXXLisenet</listener-class> 
</listener> 



七、設置會話(Session)過時時間,其中時間以分鐘爲單位,假如設置60分鐘超時: 
<session-config> 
<session-timeout>60</session-timeout> 
</session-config>

複製代碼

下面咱們在/WebContent/WEB-INF/下新建web.xml文件,具體內容以下,裏面有一些最基本的配置,裏面的配置都有註釋:spring

複製代碼

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <description>
      Spring MVC DEOM
    </description>
    <display-name>springMVC</display-name>
    
    <!-- 
        CharacterEncodingFilter類具備encoding和forceEncoding兩個屬性,其中encoding是表示設置request的編碼,forceEncoding表示是否同時設置response的編碼。 
        <filter>下的<filter-name>內的值和<filter-mapping>下的<filter-name>內的值要徹底一致
    -->
    <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <!-- /下的全部請求都爲UTF-8編碼 -->
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <!-- 
        Spring MVC相關設置
        <servlet>下的<servlet-name>內的值和<servlet-mapping>下的<servlet-name>內的值要徹底一致
    -->
    <servlet>
        <servlet-name>SpringMVC-DEOM</servlet-name>
        <!-- DispatcherServlet主要負責流程的控制 -->
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- Spring MVC配置文件路徑 -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/springMVC-servlet.xml</param-value>
        </init-param>
        <!-- 表示啓動容器時初始化該Servlet -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>SpringMVC-DEOM</servlet-name>
        <!-- 表示哪些請求交給Spring Web MVC處理, 「/」 是用來定義默認servlet映射的。也能夠如「*.html」表示攔截全部以html爲擴展名的請求。 -->
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    
</web-app>

複製代碼

有的初學者可能會說,看了註釋好像仍是不能徹底明白其中的意思,我要說的是,先不要急於徹底瞭解每一個配置的含義,等到作的項目多了了解Spring MVC整個運行機制天然會慢慢明白,不可由於看不明白而不去學了,放棄了,要容許暫時存在一些疑問。spring-mvc

二、Spring MVC配置文件 session

你們確定都注意到web.xml文件裏有個配置爲 「/WEB-INF/springMVC-servlet.xml」  這個文件是Spring MVC的配置文件,Spring官方文檔上推薦的默認的文件名是[servlet-name]-servlet.xml文件,這裏 servlet-name 叫 springMVC,所以,我新建了一個springMVC-servlet.xmlmvc

咱們如今在/WEB-INF/下創建一個/springMVC-servlet.xml文件,內容以下:app

複製代碼

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"               
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util" xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
  http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
  http://www.springframework.org/schema/util
  http://www.springframework.org/schema/util/spring-util-4.2.xsd
  http://www.springframework.org/schema/context 
  http://www.springframework.org/schema/context/spring-context-4.2.xsd
  http://www.springframework.org/schema/mvc
  http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd">
  
  <bean id = "helloworld" class="com.game.controller.Helloworld">
  </bean>
</beans>

複製代碼

這個文件內容很少,裏面真正有意義的內容爲jsp

<bean id = "helloworld" class="com.game.controller.Helloworld">
  </bean>

這是啥意思呢? 這個東西叫作bean, Spring 中的bean是什麼鬼? 簡單來講在Spring啓動以前bean就是一個普通java類,但不是說全部的java類都是bean ,若是一個普通類想要成爲bean必需要在配置文件裏配置,就是說每個bean都要對應一個java類文件,就是上面你看到的。每個Bean對應一般須要指定兩個屬性。網站

        id:肯定該Bean的惟一標識符,容器對Bean管理、訪問、以及該Bean的依賴關係,都經過該屬性完成。Bean的id屬性在Spring 配置文件中是惟一的。    

        class:指定該Bean的具體實現類。注意這裏不能使接口。一般狀況下,Spring會直接使用new關鍵字建立該Bean的實例,所以,這裏必須提供Bean實現類的類名。

當Spring 啓動以後會把配置文件(<bean>)裏的這些java類,new 一個對象,存在Spring 裏(有的地方稱爲 Spring 容器),有可能會有不少對象在Spring 裏面(多個bean),當咱們寫代碼的時候就能夠直接去用這些對象,而不用再去建立對象了。注意:只有在配置文件裏聲明過的類纔會被建立對象,其餘的類不會被建立爲bean。

那麼bean是什麼呢? bean就是存在於Spring 容器中的對象。若是把Spring 比做一輛汽車,bean就是汽車裏的各個模塊零件,好比:發動機,變速箱,電路系統等,當汽車啓動時候就已經將他們激活,就能夠直接使用這些模塊,而不用再去單獨啓動這些模塊。

相關文章
相關標籤/搜索