1谐区、新建工程
在IDEA中,File -> New -> Project...
逻卖,這里我們需要通過Maven新建一個webapp骨架的項目宋列。選中Maven,并勾選Create from archetype
评也,選擇org.apache.maven.archetypes:maven-archetype-webapp
:
輸入GroupId和ArtifactId:
選中本地Maven的主目錄(當然炼杖,也可以用Idea自帶的Maven):
輸入工程的名字,并選擇工程的存儲路徑:
點擊完成之后盗迟,Maven開始下載相關(guān)的依賴:
下載完成之后坤邪,Maven完成初步的構(gòu)建,這時候罚缕,可以看到該項目的目錄結(jié)構(gòu):
2艇纺、編寫代碼
2.1 Controller
首先,在前面新建的src/main
目錄下怕磨,新建一個java文件夾喂饥,用來存放工程中用到的java代碼。這時候肠鲫,需要在idea中選中這個新建的java目錄员帮,然后,右鍵导饲,依次單擊Mark Directory as -> Sources Root
捞高,將這個目錄設(shè)置為源碼目錄,然后渣锦,新建如下java類硝岗,作為Controller:
MainController.java:
package com.spacecat.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* Created by chengxia on 2019/5/26.
*/
@Controller
public class MainController{
@RequestMapping(value = "/helloworld")
public String index(){
return "helloworld";
}
}
2.2 配置DispatcherServlet
在工程的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>
<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>/</url-pattern>
</servlet-mapping>
</web-app>
注意這里配置了<servlet-name>mvc-dispatcher</servlet-name>
袋毙,那么型檀,就相當于確定了下面的WEB-INF/mvc-dispatcher-servlet.xml
配置文件名稱。該配置文件中听盖,主要是View相關(guān)的配置胀溺。如下:
<?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:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.spacecat.controller"/>
<mvc:annotation-driven/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
2.3 編寫簡單的jsp
在WEB-INF
目錄下,新建jsp文件WEB-INF/pages/helloworld.jsp
皆看,充當簡單的View視圖:
<%--
Created by IntelliJ IDEA.
User: chengxia
Date: 2019/5/26
Time: 10:38 PM
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h2>Hello World!</h2>
<h2>Page returned from controller.</h2>
</body>
</html>
2.4 最終的文件結(jié)構(gòu)
最終的文件結(jié)構(gòu)如下圖:
2.5 新建Tomcat運行
單擊Idea菜單Run仓坞,在下拉菜單中單擊Run...
,彈出如下窗口:
然后腰吟,新建運行時无埃,如下圖:
選擇Deployment
選項卡,然后添加Artifact:
在彈出的對話框中選中hellospringmvc:war
:
這時候,點擊上面圖片中的Run嫉称,就能夠啟動Tomcat服務(wù)器侦镇。
在服務(wù)器啟動后,在瀏覽器窗口中輸入http://localhost:8080/helloworld
澎埠,就可以看到如下頁面:
到這里虽缕,一個最簡單SpringMVC工程就演示完畢。
3蒲稳、簡單解釋
這里的Controller中定義了url的處理氮趋,對/helloworld
這個url的請求,由index()
方法處理江耀,該方法返回了一個視圖名字helloworld剩胁。
根據(jù)WEB-INF/mvc-dispatcher-servlet.xml
文件中的配置,helloworld視圖對應(yīng)的是前綴為/WEB-INF/pages/
祥国,后綴為.jsp
的文件昵观,也就是WEB-INF/pages/helloworld.jsp
。
這樣舌稀,當請求/helloworld
這個url時啊犬,就得到了瀏覽器頁面中的”HelloWorld!“。
在SpringMVC中壁查,請求先到DispatcherServlet
觉至,然后再被分發(fā)到Controller。web.xml
中睡腿,servlet-mapping
语御,配置成<url-pattern>/</url-pattern>
,意思是所有的請求都要先經(jīng)過DispatcherServlet席怪。