Idea 搭建Maven--web項目(MVC)


小編最近正在學習使用MVC框架,在搭建Maven的項目過程中,遇到了很多問題,上網搜了很多材料才找到答案,為了小編以后查起來方便,也為了向廣大小伙伴分享,寫了這部片博文,敬我昨天一天的學習結果!


 步驟如下:

第一部分:創建Maven項目

1.首先我們需要新建一個工程,小編使用的是Idea的編輯器,eclipse的大體類似。使用File ->New->Project

2.在新彈出的對話框中,選擇Maven工程,在右側勾選“2”位置處的內容,在下面的選項中找到后綴為webapp的,選中后點擊Next。

需要注意的是,右邊的選項中有兩個webapp,如箭頭所示,我們使用第二個。

如果使用第一個的話,會遇到各種報錯,至於報什么錯呢,各位看官顯得無聊可以試試,小編就不多說了。

3.填寫一些項目內容。

GroupId和ArtifactId可以隨便填寫,填寫完成后,點擊Next。

4. 配置Maven

在新彈出的對話框中配置Maven版本和配置路徑。

如果電腦上已經存在Maven,點擊“Maven home directory” 后面的按鈕,選擇本機的Maven就好。如果沒有預裝,可以直接使用Idea提供的,即圖示“Bundeld(Maven)”,點擊下拉框可在各個Maven版本中切換。

“User setting file”和"Local repository"選項,可以使用默認路徑,也可以點擊“Overide”,然后重新自定義路徑。新手的話,推薦使用默認。

全部設置完成后,點擊Next。

在新彈出的對話框中,配置項目路徑和名稱,配置完成后點擊Finish。一個Maven的殼子就創建完成啦。

為新項目選擇新開一個窗口,當然也可以選擇在本窗口打開,各憑喜好。

最后就是等待項目加載完成,在這里會彈出一個提示框,我們選擇Enable auto-import,允許項目自動將需要的jar包導入,省去手工導入的操作。

第二部分:配置項目結構

1.配置項目框架

小編使用的是MVC模式,因此需要將MVC框架的內容加載到項目中。

在項目名稱上右鍵,選擇Add Framework Support。

在新彈出的對話框的左側中,找到並勾選Spring MVC。在右側,可以選擇使用本機已有的Spring MVC,也可以選擇Idea 自動下載,即“Download”。勾選完成后點擊“OK”

你會看到編譯器正在下載Spring相關的內容。

下載完成后,左側的目錄結構中會多出一個lib文件夾,里面存放的是Spring MVC相關的jar包,由於我們會在之后的pom.xml文件中配置這些內容,因此這個文件夾可以直接刪掉。

2.配置項目文件結構

MVC簡單來講,是將model,view, controller分離,單獨編碼,單獨管理,因此,我們在為項目配置目錄結構的時候,夜鶯從這幾方面考慮。

在Maven自動生成的目錄結構中,

我們在main目錄下創建java文件夾,其下分別創建condition,controller,dao,service,mapper文件夾,用於存放和管理后台代碼;創建resources文件夾,用於存放資源文件。

在src目錄下創建test文件夾,用於存放單元測試代碼。

在webapp文件夾下創建res文件夾,其下依次創建js,css,img文件夾,用於存放相應類型的文件;在WEB-INF文件夾下創建views文件夾,用於存放jsp頁面文件。

完整的目錄結構如下:

3.為文件夾配置權限

創建完文件后,可能會發現,在任何文件夾下都無法創建java文件,此時,我們需要為剛剛創建的文件夾配置權限。

選擇“File -> Project Structure”,打開對話框,點擊java文件夾,選擇Sources,點擊resources文件夾,選擇Resources,點擊test文件夾,選擇Test。

配置完成后選擇Apply 然后。關閉對話框,就會發現,文件夾的顏色和形態發生了變化,此時,就可以在java下創建class文件了。

4.配置pom.xml文件

現直接將小編的完整的XML文件奉上

  1 <?xml version="1.0" encoding="UTF-8"?>
  2 
  3 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5   <modelVersion>4.0.0</modelVersion>
  6 
  7   <groupId>MavenDemo2</groupId>
  8   <artifactId>test.maven</artifactId>
  9   <version>1.0-SNAPSHOT</version>
 10   <packaging>war</packaging>
 11 
 12   <name>test.maven Maven Webapp</name>
 13   <!-- FIXME change it to the project's website -->
 14   <url>http://www.example.com</url>
 15 
 16   <properties>
 17     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 18     <maven.compiler.source>1.7</maven.compiler.source>
 19     <maven.compiler.target>1.7</maven.compiler.target>
 20   </properties>
 21 
 22   <dependencies>
 23     <dependency>
 24       <!-- junit測試包-->
 25       <groupId>junit</groupId>
 26       <artifactId>junit</artifactId>
 27       <version>4.11</version>
 28       <scope>test</scope>
 29     </dependency>
 30     <!--日志包-->
 31     <dependency>
 32       <groupId>org.slf4j</groupId>
 33       <artifactId>slf4j-log4j12</artifactId>
 34       <version>1.8.0-alpha2</version>
 35     </dependency>
 36     <!--mysql驅動包-->
 37     <dependency>
 38       <groupId>mysql</groupId>
 39       <artifactId>mysql-connector-java</artifactId>
 40       <version>6.0.6</version>
 41     </dependency>
 42     <!-- JDBC連接池 -->
 43     <dependency>
 44       <groupId>com.mchange</groupId>
 45       <artifactId>c3p0</artifactId>
 46       <version>0.9.5.2</version>
 47     </dependency>
 48     <!-- DruidDataSource,本工程的dataSource配置使用的Druid -->
 49     <dependency>
 50       <groupId>com.alibaba</groupId>
 51       <artifactId>druid</artifactId>
 52       <version>1.0.29</version>
 53     </dependency>
 54     <!--spring相關包-->
 55     <dependency>
 56       <groupId>org.springframework</groupId>
 57       <artifactId>spring-web</artifactId>
 58       <version>4.3.8.RELEASE</version>
 59     </dependency>
 60     <dependency>
 61       <groupId>org.springframework</groupId>
 62       <artifactId>spring-webmvc</artifactId>
 63       <version>4.3.8.RELEASE</version>
 64     </dependency>
 65     <dependency>
 66       <groupId>org.springframework</groupId>
 67       <artifactId>spring-context-support</artifactId>
 68       <version>4.3.8.RELEASE</version>
 69     </dependency>
 70     <dependency>
 71       <groupId>org.springframework</groupId>
 72       <artifactId>spring-oxm</artifactId>
 73       <version>4.3.8.RELEASE</version>
 74     </dependency>
 75     <dependency>
 76       <groupId>org.springframework</groupId>
 77       <artifactId>spring-tx</artifactId>
 78       <version>4.3.8.RELEASE</version>
 79     </dependency>
 80     <dependency>
 81       <groupId>org.springframework</groupId>
 82       <artifactId>spring-test</artifactId>
 83       <version>4.3.8.RELEASE</version>
 84     </dependency>
 85     <dependency>
 86       <groupId>org.springframework</groupId>
 87       <artifactId>spring-jdbc</artifactId>
 88       <version>4.3.8.RELEASE</version>
 89     </dependency>
 90     <dependency>
 91       <groupId>org.aspectj</groupId>
 92       <artifactId>aspectjweaver</artifactId>
 93       <version>1.8.10</version>
 94     </dependency>
 95     <dependency>
 96       <groupId>org.aspectj</groupId>
 97       <artifactId>aspectjrt</artifactId>
 98       <version>1.8.10</version>
 99     </dependency>
100     <!-- 支持jsp相關包 -->
101     <dependency>
102       <groupId>javax.servlet</groupId>
103       <artifactId>jstl</artifactId>
104       <version>1.2</version>
105     </dependency>
106     <dependency>
107       <groupId>taglibs</groupId>
108       <artifactId>standard</artifactId>
109       <version>1.1.2</version>
110     </dependency>
111     <!--servlet/jsp api start-->
112     <dependency>
113       <groupId>javax.servlet</groupId>
114       <artifactId>servlet-api</artifactId>
115       <version>3.0-alpha-1</version>
116     </dependency>
117     <dependency>
118       <groupId>javax.servlet.jsp</groupId>
119       <artifactId>jsp-api</artifactId>
120       <version>2.2.1-b03</version>
121     </dependency>
122     <dependency>
123       <groupId>org.projectlombok</groupId>
124       <artifactId>lombok</artifactId>
125       <version>1.16.16</version>
126     </dependency>
127     <!-- Mybatis管理 start -->
128     <dependency>
129       <groupId>org.mybatis</groupId>
130       <artifactId>mybatis</artifactId>
131       <version>3.4.1</version>
132     </dependency>
133     <dependency>
134       <groupId>org.mybatis</groupId>
135       <artifactId>mybatis-spring</artifactId>
136       <version>1.3.0</version>
137     </dependency>
138     <dependency>
139       <groupId>com.alibaba</groupId>
140       <artifactId>fastjson</artifactId>
141       <version>1.2.33</version>
142     </dependency>
143   </dependencies>
144 
145   <build>
146     <finalName>test.maven</finalName>
147     <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
148       <plugins>
149         <plugin>
150           <artifactId>maven-clean-plugin</artifactId>
151           <version>3.0.0</version>
152         </plugin>
153         <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
154         <plugin>
155           <artifactId>maven-resources-plugin</artifactId>
156           <version>3.0.2</version>
157         </plugin>
158         <plugin>
159           <artifactId>maven-compiler-plugin</artifactId>
160           <version>3.7.0</version>
161         </plugin>
162         <plugin>
163           <artifactId>maven-surefire-plugin</artifactId>
164           <version>2.20.1</version>
165         </plugin>
166         <plugin>
167           <artifactId>maven-war-plugin</artifactId>
168           <version>3.2.0</version>
169         </plugin>
170         <plugin>
171           <artifactId>maven-install-plugin</artifactId>
172           <version>2.5.2</version>
173         </plugin>
174         <plugin>
175           <artifactId>maven-deploy-plugin</artifactId>
176           <version>2.8.2</version>
177         </plugin>
178       </plugins>
179     </pluginManagement>
180   </build>
181 </project>
pom.xml

在Maven項目加載完成之后,pom文件中會自動生成一些配置,這些配置不需要修改,在其基礎上加上一些依賴包即可.

 第三部分:完成一次訪問

1.配置web,xml文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
 5          version="3.1">
 6 
 7     <display-name>Archetype Created Web Application</display-name>
 8     <!--配置首頁-->
 9     <welcome-file-list>
10         <welcome-file>index.jsp</welcome-file>
11     </welcome-file-list>
12     <!--配置springmvc DispatcherServlet-->
13     <servlet>
14         <servlet-name>springMVC</servlet-name>
15         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
16         <init-param>
17             <!--配置dispatcher.xml作為mvc的配置文件-->
18             <param-name>contextConfigLocation</param-name>
19             <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
20         </init-param>
21         <load-on-startup>1</load-on-startup>
22         <async-supported>true</async-supported>
23     </servlet>
24     <servlet-mapping>
25         <servlet-name>springMVC</servlet-name>
26         <url-pattern>/</url-pattern>
27     </servlet-mapping>
28     <!--把applicationContext.xml加入到配置文件中-->
29     <context-param>
30         <param-name>contextConfigLocation</param-name>
31         <param-value>/WEB-INF/applicationContext.xml</param-value>
32     </context-param>
33     <listener>
34         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
35     </listener>
36 </web-app>
web.xml

2.配置dispatcher-servlet.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4        xmlns:context="http://www.springframework.org/schema/context"
 5        xmlns:mvc="http://www.springframework.org/schema/mvc"
 6        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
 7     <!--此文件負責整個mvc中的配置-->
 8 
 9     <!--啟用spring的一些annotation -->
10     <context:annotation-config/>
11 
12     <!-- 配置注解驅動 可以將request參數與綁定到controller參數上 -->
13     <mvc:annotation-driven/>
14 
15     <!--靜態資源映射-->
16     <!--本項目把靜態資源放在了webapp的statics目錄下,資源映射如下-->
17     <mvc:resources mapping="/css/**" location="/res/css/"/>
18     <mvc:resources mapping="/js/**" location="/res/js/"/>
19     <mvc:resources mapping="/image/**" location="/res/img/"/>
20     <mvc:default-servlet-handler />  <!--這句要加上,要不然可能會訪問不到靜態資源,具體作用自行百度-->
21 
22     <!-- 對模型視圖名稱的解析,即在模型視圖名稱添加前后綴(如果最后一個還是表示文件夾,則最后的斜杠不要漏了) 使用JSP-->
23     <!-- 默認的視圖解析器 在上邊的解析錯誤時使用 (默認使用html)- -->
24     <bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
25         <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
26         <property name="prefix" value="/WEB-INF/views/"/><!--設置JSP文件的目錄位置-->
27         <property name="suffix" value=".jsp"/>
28         <property name="exposeContextBeansAsAttributes" value="true"/>
29     </bean>
30 
31     <!-- 自動掃描裝配 -->
32     <context:component-scan base-package="controller"/>
33 
34 </beans>
dispatcher-servlet.xml

3.配置applicationContext.xml

1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4        xmlns:context="http://www.springframework.org/schema/context"
5        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
6     
7     <context:component-scan base-package="java"/>
8 
9 </beans>
applicationContext.xml

4.配置jsp頁面

在views下創建index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>welcome</title>
</head>
<body>
訪問成功
</body>
</html>

5.在controller下創建控制器

package controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/home")
public class DemoController {

    @RequestMapping("/index")
    public String getStr(){
        return "index";
    }
}

6.配置Tomcat

在圖示位置選擇Edit Configurations

在左側點擊+號,在列表中,找到“Tomcat Server -> Local”。

在右側Server選項卡中,“Configure”可以配置服務器的名字,自己隨意填寫就好,當然同時可以配置端口號、瀏覽器等信息。

在deployment選項卡中,選擇+號,選擇artifact。

在彈出的對話框中,選擇帶“exploded”的選項,點擊OK。

完成后,在“Application context”輸入框的“/”后面輸入項目名。點擊OK

配置完成后點擊Apply,關閉窗口,出現如下圖所示的樣子,即為配置成功。點擊運行。

7.訪問views的index.jsp

運行成功后,進入的頁面是webapp下的index.jsp,將地址欄的url更改為http://localhost:8080/maven/home/index,即可訪問在views下的index.jsp了。其中"/maven”是項目名,“/home”是controller的標志,“/index”是controller下某個方法的標志。

 


免責聲明!

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



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