使用maven簡單搭建springmvc


介紹

Spring MVC屬於SpringFrameWork的后續產品,已經融合在Spring Web Flow里面。Spring 框架提供了構建 Web 應用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構,從而在使用Spring進行WEB開發時,可以選擇使用SpringSpring MVC框架或集成其他MVC開發框架,如Struts1(現在一般不用)Struts 2(一般老項目使用)等。

優點

Lifecycle for overriding binding, validation, etc,易於同其它View框架(Tiles等)無縫集成,采用IOC便於測試。

它是一個典型的教科書式的mvc構架,而不像struts等都是變種或者不是完全基於mvc系統的框架,對於初學者或者想了解mvc的人來說我覺得 spring是最好的,它的實現就是教科書!第二它和tapestry一樣是一個純正的servlet系統,這也是它和tapestry相比 struts所具有的優勢。而且框架本身有代碼,看起來容易理解。

springmvc的工作流程

 

1.     拿到瀏覽器的請求先經過了核心控制器

2.     獲得hello.do路徑比較映射器中拿取name值的hello.do

3.     根據映射器獲得的路徑去找一個實現controller接口的控制器

4.     控制器響應的數據到核心控制器中,但是核心控制器並不認識ModelAndView是什么

5.     把ModelAndView交給視圖解析器來解析,解析之后再給核心控制器

6.     核心控制器把視圖解析過后的數據進行處理

springmvc的控制器是單例的,盡量避免書寫成員屬性

初級配置springmvc

導入依賴包

<dependencies>

            <dependency>

                  <groupId>org.springframework</groupId>

                  <artifactId>spring-web</artifactId>

                  <version>4.2.5.RELEASE</version>

            </dependency>

            <dependency>

                  <groupId>org.springframework</groupId>

                  <artifactId>spring-webmvc</artifactId>

                  <version>4.1.3.RELEASE</version>

            </dependency>

            <dependency>

                  <groupId>org.springframework</groupId>

                  <artifactId>spring-core</artifactId>

                  <version>4.2.4.RELEASE</version>

            </dependency>

            <dependency>

                  <groupId>org.springframework</groupId>

                  <artifactId>spring-context</artifactId>

                  <version>4.2.4.RELEASE</version>

            </dependency>

            <dependency>

                  <groupId>org.springframework</groupId>

                  <artifactId>spring-beans</artifactId>

                  <version>4.2.4.RELEASE</version>

            </dependency>

            <dependency>

                  <groupId>org.springframework</groupId>

                  <artifactId>spring-expression</artifactId>

                  <version>4.2.4.RELEASE</version>

            </dependency>

            <dependency>

                  <groupId>org.apache.logging.log4j</groupId>

                  <artifactId>log4j-api</artifactId>

                  <version>2.3</version>

            </dependency>

            <dependency>

                  <groupId>junit</groupId>

                  <artifactId>junit</artifactId>

                  <version>4.12</version>

            </dependency>

            <dependency>

                  <groupId>org.springframework</groupId>

                  <artifactId>spring-aop</artifactId>

                  <version>4.2.4.RELEASE</version>

            </dependency>

            <dependency>

                  <groupId>org.springframework</groupId>

                  <artifactId>spring-test</artifactId>

                  <version>4.2.6.RELEASE</version>

            </dependency>

            <dependency>

                  <groupId>org.springframework</groupId>

                  <artifactId>spring-aspects</artifactId>

                  <version>4.2.4.RELEASE</version>

            </dependency>

                  <dependency>

                  <groupId>com.alibaba</groupId>

                  <artifactId>druid</artifactId>

                  <version>1.0.9</version>

            </dependency>

            <dependency>

                  <groupId>mysql</groupId>

                  <artifactId>mysql-connector-java</artifactId>

                  <version>5.1.32</version>

            </dependency>

            <dependency>

                  <groupId>org.springframework</groupId>

                  <artifactId>spring-jdbc</artifactId>

                  <version>4.2.4.RELEASE</version>

            </dependency>

            <dependency>

                  <groupId>org.apache.tomcat</groupId>

                  <artifactId>servlet-api</artifactId>

                  <version>6.0.29</version>

            </dependency>

      </dependencies>

配置xml文件

 

 

配置核心配置文件

<?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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

   xmlns:mvc="http://www.springframework.org/schema/mvc"

   xsi:schemaLocation="http://www.springframework.org/schema/beans

        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

        http://www.springframework.org/schema/context

        http://www.springframework.org/schema/context/spring-context-3.0.xsd

        http://www.springframework.org/schema/aop

        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

        http://www.springframework.org/schema/tx

        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

        http://www.springframework.org/schema/mvc

        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

   <bean name="/hello.do" class="com.oracle.controller.HelloController"></bean>

</beans>

映射器會自動從name屬性中,獲取路徑

注意:沒有配置核心配置文件的位置和名稱的時候,應該將其和web.xml文件創建在一起,且必須命名為DispatcherServlet-servlet.xml

 

 

創建控制器

新建一個控制類實現controller方法

 

 

 

測試

將其部署到tomcat測試

 

 

更改核心配置文件的名稱和位置

只需在web.xml文件中,告訴核心控制器,配置文件在哪里叫什么即可

 

 

 

編碼過濾器

為每一個響應到瀏覽器的數據都要將其格式轉換為utf-8,可以在web.xml中配置編碼過濾器

 

 

但是如果攔截所有的路徑,可能會將js,圖片,css樣式同樣過濾掉,所以我們需要在springmvc.xml中配置哪些東西不需要被過濾

<mvc:resources location="/css/" mapping="/css/**"/>

      <mvc:resources location="/image/" mapping="/image/**"/>

      <mvc:resources location="/js/" mapping="/js/**"/>

配置視圖解析器

我們的jsp文件如果統一放在webapp下,會顯得很多很亂,因此我們可以配置視圖解析器,告訴核心控制器去那里找jsp文件,找以.jsp結尾的jsp文件。

<!-- 視圖解析器 -->

   <bean

   class="org.springframework.web.servlet.view.InternalResourceViewResolver">

      <property name="prefix" value="/jsps/" />

      <property name="suffix" value=".jsp"></property>

   </bean>

這樣我們在自定義的控制器中,就可以只寫jsp文件的名字即可。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM