SpringMVC入門案例,詳細說明文件目錄結構,導包方式及項目創建

SpringMVC支持使用註解方式配置,比配置文件方式更加的靈活易用,是SpringMVC使用的主流模式。

傳統的servlet是單例,如果業務複雜,存在很多的servlet,就會創建很多對象,造成內存浪費等一系列問題,SpringMVC就很好的解決了這些問題。

1.項目創建文件目錄結構及導包 

A.創建項目

新建立的項目在WEB-INF目錄下沒有lib包和classes包的話,手動創建一下。

WEB-INF 文件夾下的文件是被保護的,不能被外部訪問,所以編譯好的class文件,jar包web.xml放到這裏比較安全(web.xml這種配置文件很重要肯定不能暴露出去,讓用戶訪問到)。

B.在WEB-INF目錄下創建lib包、classes包

C.導入相關的jar包

注意:此時導入的jar包不能採用之前javase項目添加jar包的方式Add as Library,因爲這是web項目,到時編譯發佈的都是WEB-INF下的,將jar包添加到項目中是沒有用的,到時發佈到tomcat中會導致不能正常運行

D.配置classes和lib目錄

在右上角1位置點擊按鈕進入到Project Structure

然後選擇位置2的Paths

然後選擇位置3的Use module compile output path

在位置4選擇剛剛創建的classes文件目錄,用來保存編譯好的class文件

最後在5位置先選擇apply,此時不要點擊OK

選擇Dependencies,然後點擊”+”,在彈出框中選擇到剛剛創建的lib包然後OK

此時可以看到lib包已經添加成功,點擊Apply---OK 完成jar包的導入

此時可以看到之前創建的classes文件夾已經變爲了橙色,lib文件夾中的jar包已經可以展開,說明WEB項目創建成功

web項目的結構層級關係

|--靜態web資源,html,css,js,圖片,音頻。視頻,動畫等

|--WEB-INF

             |--classes  //動態web資源class文件

             |--lib  //動態web資源依賴的jar包

             |--web.xml  //web應用的核心配置文件

             |--xxxxx   //其他不希望外界直接訪問的文件

2.創建SpringMVC項目

方式一:

A.在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/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!--前端控制器-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <!--/* 範圍太大:*.do ,*.action 都行,可以自己自由命名-->
        <url-pattern>*.action</url-pattern>
    </servlet-mapping>
</web-app>

B.創建SpringMVC核心配置文件

因爲SpringMVC默認會自動在web應用的WEB-INF目錄下去尋找[前端控制器ServletName]-servlet.xml作爲當前SpringMVC的核心配置文件,所以就在WEB-INF目錄下創建文件。

關於文件名:

上面web.xml中配置的前端控制器的<servlet-name>是springmvc,所以按照要求正確的文件名應該是(springmvc-servlet.xml

創建springmvc-servlet.xml這個文件,這個文件本身其實就是Spring的配置文件,所以導入Spring相關的約束信息,包括 beans、context、mvc

創建如下:

目錄結構如下 

在springmvc-servlet.xml中配置,配置註解方式MVC開關時主要選擇後綴爲mvc的

springmvc-servlet.xml中具體配置如下:

視圖解析器中prefix爲前綴,suffix爲後綴

<?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:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <!--配置包掃描-->
    <context:component-scan base-package="cn.wyy.web"/>
    <!--配置註解方式MVC開關-->
    <mvc:annotation-driven/>
    <!--配置視圖解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    <!--配置視圖解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

C. 在src目錄下創建控制器類MyController,並返回視圖test01

 D.根據前綴中配置的路徑及控制器中返回的視圖名稱,創建如下目錄及文件

在test01.jsp中通過EL表達式獲取Controller中設置的值

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    控制器中設置的值爲:<br/>
    ${k1}<br/>
    ${k2}<br/>

</body>
</html>

E. 部署運行程序

根據@RequestMapping中的配置可知,訪問的地址爲

http://localhost/springmvctest01_war_exploded/web01/test01.action

訪問驗證成功

方式二 

對於上面的步驟B,

SpringMVC默認會自動在web應用的WEB-INF目錄下去尋找[前端控制器ServletName]-servlet.xml作爲當前SpringMVC的核心配置文件,也可以在servlet的配置中自己指定核心配置文件位置,這樣就可以改變這個核心配置文件的路徑及名稱了

具體的操作:在web.xml中的servlet標籤中加入<init-param>標籤實現,一般習慣於將該配置文件放置在src根目錄下

修改後的web.xml內容如下,可以自由命名:如:springmvc-my.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/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!--前端控制器-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc-my.xml</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <!--/* 範圍太大:*.do ,*.action 都行,可以自己自由命名-->
        <url-pattern>*.action</url-pattern>
    </servlet-mapping>
</web-app>

修改後的目錄結構如下:

其他與方式一保持一致,部署項目,測試如下,訪問成功

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章