IntelliJ idea創建Spring MVC的Maven項目

參考:http://my.oschina.net/gaussik/blog/385697?fromerr=Pie9IlFV

創建Maven Web項目

菜單File->New Project可進入如圖界面,首先選擇左邊欄Maven,再配置JDK(一般如果之前添加了JDK的話會自動填充,如未添加的話點擊旁邊的New將JDK目錄導入即可)。勾選"Create from archetype",然後選中maven-archetype-webapp,點Next,進入如下界面:

這裏需要填寫GroupId和ArtifactId,Version默認即可,這三個屬性可以唯一標識你的項目,比如Tomcat的GroupId是org.apache,即它是apache組織的項目,ArtifactId是tomcat,項目名爲tomcat,而我當前使用的Version是 7.0.47。這些只在發佈時有用,在此可以隨便填寫。

我自己的maven配置

填寫項目名,選擇項目保存路徑,點擊Finish:

maven會在後臺生成web項目,這需要等待一定的時間,視網絡環境而定.

下圖展示了該項目的文件結構。可以發現,它在src/main下創建了一個recources文件夾,該文件夾一般用來存放一些資源文件,還有一個webapp文件夾,用來存放web配置文件以及jsp頁面等,這已經組成了一個原始的web應用。選擇右邊紅框的Enable-Auto- Import,可以在每次修改pom.xml後,自動的下載並導入jar包,這一點在後面詳述。

我們可以看到,目錄結構並不是嚴格的maven格式,還需進一步配置。

File->Project Structure->Model.

選中對應的文件夾,點擊上面的Make as...,相應的文件夾機會變成Sources,Tests,Resources,Test Resources,按OK,結束配置。

Maven自動導入jar包
既然我們要用Spring MVC開發,那肯定少不了Spring MVC的相關jar包。如果不使用Maven的話,那就需要去官網下載相關的jar包,然後導入到項目中。現在使用maven的話,就不需要上網找jar包了。
Maven所做的工作其實很簡單,就是自動把你需要的jar包下載到本地,然後關聯到項目中來。maven的所有jar包都是保存在幾個中央倉庫裏面的,其中一個最常用的是Maven Repository,即,你需要什麼jar包,它就會從倉庫中拿給你。那麼如何告訴maven需要什麼jar包呢?我們看看工程目錄,能找到一個pom.xml文件(這個文件在剛創建好項目時就已經展現在了大家面前),maven就是靠它來定義需求的,代碼如下:

複製代碼
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.tuniu</groupId> <artifactId>springmvcdemo</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>springmvcdemo Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>springmvcdemo</finalName> </build> </project>
複製代碼

我們可以看到這個文件包含了我們之前定義的本項目的groupId等信息,這些信息是該項目的標識,我們不要去改動它們。重點看<dependencies>標籤,翻譯過來是"依賴"的意思,也就是說把對每個包的需求都稱爲一個依賴<depedency>,定義在<dependencies>中。在每個<depedency>中,你需要提供的是所需jar包的groupId、artifactId、version(g,a,v)這三個必要信息。比如上面我們看到引入可一個junit包,格式如下:

複製代碼
<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
</dependencies>
複製代碼

這是單元測試包,提供了三個基本信息,第4個scope對其他包來說是非必需的。所有jar包的引入都要滿足這個格式。要查看這些jar包的3個信息呢,需要查閱倉庫。比如我們需要引入Spring核心jar包spring-core,打開Maven Repository搜索spring-core,進入如下界面:

點擊進入紅框選中的Spring Core,如下所示,可以看到各版本的使用情況:

選擇最新版本3.2.0.RELEASE,可以看到其dependency寫法如下紅框所示:

  我們將其複製到pom.xml中的<dependencies>中:

 這樣,Maven就會開始自動下載jar包到本地倉庫,然後關聯到你的項目中,下載完成後,我們展開工程目錄中External Libraries:

可以發現,雖然我們只寫了一個依賴,但是它導入了兩個jar包,也就是說,導入某個jar包時,與它密切相關的jar包也會同時被導入進來。
除了spring-core,我還要spring-web,複製spring-core的<dependency>,將spring-core改爲spring-web,如下:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>3.2.0.RELEASE</version>
</dependency>

下載完成後,查看External Libraries,會發現導入了好多jar包。

這就是Maven的強大之處,如果你需要使用Spring MVC開發網站的話,只需記住幾個重要的包的名字,就可以輕鬆將所有包導入項目中。
現在我們要進行Spring MVC的開發,請把你的pom.xml變成下面的樣子,當然不要改你的grupId等信息(從modelVersion到url都不要動):

<properties>
    <spring.version>3.2.0.RELEASE</spring.version>
    <spring-data.version>1.2.0.RELEASE</spring-data.version>
</properties>

請在<dependencies>中加入以下依賴:

複製代碼
  <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
    </dependency>
 
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
    </dependency>
 
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
    </dependency>
 
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.1</version>
        <scope>provided</scope>
    </dependency>
 
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
    </dependency>
 
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>${spring.version}</version>
        <scope>test</scope>
    </dependency>
 
    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
 
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-jpa</artifactId>
        <version>${spring-data.version}</version>
    </dependency>
 
    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.0-api</artifactId>
        <version>1.0.0.Final</version>
    </dependency>
 
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>3.6.10.Final</version>
    </dependency>
 
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.34</version>
    </dependency>
 
    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20080701</version>
    </dependency>
複製代碼

我們可以發現,除了導入了spring相關jar包,還有一些其他的包,這些包都是有作用的。如果不使用Maven請自行下載spring、hibernate、mysql、jstl、javax-servlet、json等相關jar包然後導入到工程中。至此,jar包的導入就完成了,我們按ctrl+alt+shift+s,或者File->Project Structure查看一下項目結構,看看有什麼問題:

SpringMVC框架配置
進行完上面的配置,那就說明現在基本的開發環境已經搭建好了,現在要開始進行Spring MVC的網站開發。
1、web.xml配置
打開src\main\webapp\WEB-INF\下的web.xml文件,修改約束文件,如下:

原來的竟然是這樣

複製代碼
<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
</web-app>
複製代碼

--->

複製代碼
<?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_3_1.xsd"
         version="3.1">
 
    <display-name>SpringMVCDemo Web Application</display-name>
 
</web-app>
複製代碼

在web.xml中創建Spring MVC的中央控制器

複製代碼
<?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_3_1.xsd"
         version="3.1">

  <display-name>SpringMVCDemo Web Application</display-name>

  <servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
</web-app>
複製代碼

該servlet名爲mvc-dispatcher(名稱可修改),用於攔截請求(url-pattern爲*.do),並交由Spring MVC的後臺控制器來處理。這一項配置是必須的

爲了能夠處理中文的post請求,再配置一個encodingFilter,以避免post請求中文出現亂碼情況:

複製代碼
<filter>
    <filter-name>encodingFilter</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>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
複製代碼

至此,web.xml配置完畢。

2、mvc-dispatcher-servlet.xml配置
在配置完web.xml後,需在WEB-INF目錄下新建 mvc-dispatcher-servlet.xml(-servlet前面是在servlet裏面定義的servlet名):

新建該xml文件後,點擊右上角的configure,出現 Setup Frameworks界面,點擊OK,這樣,IntelliJ IDEA就識別了SpringMVC的配置文件:

mvc-dispatcher-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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

</beans>

MVC框架有model、view、controller三部分組成。model一般爲一些基本的Java Bean,view用於進行相應的頁面顯示,controller用於處理網站的請求。
在src\main\java中新建一個用於保存controller的package:在controller包中新建java類MainController(名稱並不固定,可任意取),並修改如下:

複製代碼
/**
 * Created by winner_0715 on 2016/3/19.
 */
@Controller
public class MainController {
    @RequestMapping(value = "/",method = RequestMethod.GET)
    public String index() {
        return "index";
    }
}
複製代碼

--@Controller註解:採用註解的方式,可以明確地定義該類爲處理請求的Controller類;
--@RequestMapping()註解:用於定義一個請求映射,value爲請求的url,值爲 / 說明,該請求首頁請求,method用以指定該請求類型,一般爲get和post;
--return "index":處理完該請求後返回的頁面,此請求返回 index.jsp頁面。
回到mvc-dispatcher-servlet.xml,進行相關配置。

再次不在贅述,簡單配置一下

<context:component-scan base-package="com.tuniu.controller"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="prefix" value="/WEB-INF/jsp/"/>
  <property name="suffix" value=".jsp"/>
</bean>

現在,需要配置Tomcat來運行該項目。

Run->Edit Configurations

點擊左上角的"+"號,選擇Tomcat Server,(如果沒有請選擇最下方的33 items more,找到Tomcat Server),再選擇Local:

點擊 Application server 右邊的 Configure,導入Tomcat 目錄:

在配置好Tomcat的路徑後,如下圖所示,發現依然存在警告,且左方的Tomcat8圖標上有一個警告標記,說明還沒有配置完全:

我們還需要將項目部署到 Tomcat 服務器中。點擊 Deployment,再點擊右邊的"+"號,添加一個Artifact.

選擇第二個:war exploded,點擊OK,這樣,該項目就已經部署到了tomcat中.

再點擊OK,整個Tomcat配置結束.

啓動 Tomcat 了,其控制檯輸出將在IDEA下方顯示

啓動後,瀏覽器將自動彈出項目首頁.

 

發佈了91 篇原創文章 · 獲贊 49 · 訪問量 36萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章