1. 程式人生 > >繼使用IDEA建立web專案之後搭建MVC

繼使用IDEA建立web專案之後搭建MVC

上次我們利用maven搭建好了一個web專案,接下來,我們來搭建一下MVC環境配置

搭建之前還勞煩大家把有關後臺、JSP、mysql、spring等依賴包全部像上篇文章教程一樣貼入pom.xml檔案中去,我這邊也給大家提供一下我自己現在所在用的依賴包,如果大家需要,直接複製就可以

首先我們開啟IDEA,重新來配置一下pom.xml這個檔案,下面我貼完整的程式碼,你們複製到 dependencies 中去就可以了

<dependency>
  <groupId>javax.servlet.jsp</groupId>
  <artifactId>
jsp-api</artifactId> <version>2.2</version> <scope>provided</scope> </dependency> <!-- JSTL --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> <scope>runtime</scope
>
</dependency> <!-- JUnit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!--JSTL4J--> <dependency> <groupId>org.slf4j</groupId
>
<artifactId>slf4j-log4j12</artifactId> <version>1.7.7</version> </dependency> <!-- MySQL --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.33</version> <scope>runtime</scope> </dependency> <!-- Apache Commons Lang--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.3.2</version> </dependency> <!-- Apache Commons Collections--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> <version>4.0</version> </dependency> <!-- Apache Commons Dbutils--> <dependency> <groupId>commons-dbutils</groupId> <artifactId>commons-dbutils</artifactId> <version>1.6</version> </dependency> <!-- Apache Commons DBCP2 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-dbcp2</artifactId> <version>2.0.1</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.3.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-core --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.3.9.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>4.3.9.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-web --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.3.10.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.3.9.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.2</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <!-- https://mvnrepository.com/artifact/javax.activation/activation --> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1.1</version> </dependency> <!-- https://mvnrepository.com/artifact/javax.mail/mail --> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency> <!-- https://mvnrepository.com/artifact/taglibs/standard --> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> <type>jar</type> </dependency> <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.5</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.10.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-aop --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>4.3.11.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.velocity/velocity --> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.velocity/velocity-tools --> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-tools</artifactId> <version>2.0</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-test --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.3.7.RELEASE</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-jpa --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jpa</artifactId> <version>1.10.5.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.hibernate.javax.persistence/hibernate-jpa-2.0-api --> <dependency> <groupId>org.hibernate.javax.persistence</groupId> <artifactId>hibernate-jpa-2.0-api</artifactId> <version>1.0.1.Final</version> </dependency> <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>5.2.10.Final</version> </dependency> <!-- https://mvnrepository.com/artifact/org.json/json --> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20090211</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-httpclient/commons-httpclient --> <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version>3.1</version> </dependency>

等它自動下載完成後,我們來配一下兩個檔案

這裡寫圖片描述

一個是藍色的java和綠色的java,這兩個都是用來存放java類的,怎麼讓它們變色呢?剛開始你們是沒有的,我們要來新建
右鍵點選main–New–Directory,取名為java

這裡寫圖片描述

這裡寫圖片描述

按照我標記的順序依次點選,點OK就好了,綠色的是測試類,我們可以新建一個test包名,test下面再新建一個java,按照這個順序,第五步點那個綠色的Tests點OK就好了。

我們現在來說如何配置MVC

首先我們手動新建幾個目錄:

這裡寫圖片描述

這裡我們是配置配置了靜態檔案路徑,這幾個檔案件用以放靜態檔案例如指令碼,圖片檔案,檢視之類的

在WEB-INF資料夾下新建 spring-servlet.xml
滑鼠點選WEB-INF右鍵,New–XML Configuration–Spring Config

這裡寫圖片描述

配置spring-servlet.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:mvc="http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
         http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
         http://www.springframework.org/schema/context
         http://www.springframework.org/schema/context/spring-context-3.1.xsd
         http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">
    <!-- 啟動註解驅動的Spring MVC功能,註冊請求url和註解POJO類方法的對映-->
    <mvc:annotation-driven ></mvc:annotation-driven>
    <!-- 啟動包掃描功能,以便註冊帶有@Controller、@service、@repository、@Component等註解的類成為spring的bean -->
    <context:component-scan base-package="自己新建的存放Java類的包名" />
    <!-- 對模型檢視名稱的解析,在請求時模型檢視名稱新增前後綴 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/"/>    <!-- 字首 -->
        <property name="suffix" value=".jsp"/>    <!-- 字尾 -->
    </bean>
    <!-- 訪問靜態檔案(jpg,js,css)的方法 -->
    <mvc:resources location="/files/" mapping="/files/**" />
    <mvc:resources location="/scripts/" mapping="/scripts/**" />
    <mvc:resources location="/styles/" mapping="/styles/**" />
    <mvc:resources location="/Views/" mapping="/Views/**" />
</beans>

context:component-scan base-package=”自己新建的存放Java類的包名” 大家注意這個地址,這個地址需要自己手動改一下,這裡是存放控制器的包名位置

然後在resources資原始檔夾下新建applicationContext.xml

這裡寫圖片描述

配置applicationContext.xml這裡並沒有進行配置什麼資訊,我們可以在其中新增我們所需要配置的bean,也可以新增相應的資料庫連線和事務處理等等,方便後續拓展,所以先放著不寫它,接著最後一步

配置web.xml:

<!-- Spring MVC配置 -->
<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    <!-- 可以自定義servlet.xml配置檔案的位置和名稱,預設為WEB-INF目錄下,名稱為[<servlet-name>]-servlet.xml,如spring-servlet.xml
     <init-param>
         <param-name>contextConfigLocation</param-name>
         <param-value>/WEB-INF/spring-servlet.xml</param-value>
    </init-param>-->

    <!-- load-on-startup元素標記容器是否在啟動的時候就載入這個servlet(例項化並呼叫其init()方法) -->
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>
         <!--<url-pattern>*.do</url-pattern>-->
</servlet-mapping>

     <!-- Spring配置 -->
     <listener>
         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
     </listener>

     <!-- 指定Spring Bean的配置檔案所在目錄。預設配置在WEB-INF目錄下 -->
     <context-param>
        <param-name>contextConfigLocation</param-name>
         <param-value>classpath:applicationContext.xml</param-value>
     </context-param>

把這些程式碼複製到web-app 中去就可以了,具體什麼作用我已經打了註釋

這裡我們就將SpringMVC的基本XML配置檔案設定完畢,接下來我們進行一個小例項進行測試配置好的SpringMVC。

在藍色java裡右鍵新建一個包名,名字隨意取
這裡寫圖片描述

這個是我新建的包名,在這個包名下新建一個java類,名字隨意
這裡寫圖片描述

這些程式碼的作用我都已經打上了註釋

接著我們在之前新建好的Views包名下新建一個jsp頁面

這裡寫圖片描述

這裡寫圖片描述

接著我們就可以執行我們的tomcat來做個測試了,上次教過大家怎麼開啟maven外掛的tomcat7,這裡就不多說了,沒明白的請翻我上一篇文章,上次有開啟過的在IDEA右上角會有一個標記

這裡寫圖片描述

這個時候只需要點這個小爬蟲debug就可以了

當成功開啟之後,我們開啟瀏覽器輸入:
localhost:85/Test/returnString
這裡說明一下,85是我自己定義的埠號,你們要輸入你們自己的8080埠即可。

這裡寫圖片描述

當看到這個的時候表示我們成功了,接著我們輸入:
localhost:85/Test/returnSuccess

這裡寫圖片描述

大家一定有疑問,為什麼這個訪問路徑是這個樣子的,具體的我就不在這裡給大家詳細講解了,可以百度一下“Spring MVC”的原理,自然就會明白了,本人對MVC也是初體驗,所以不便給大家講解,希望大家共同進步。