SpringMVC基礎(chǔ)-搭建基礎(chǔ)的SpringMVC+Maven實(shí)現(xiàn)頁面內(nèi)容展示

項(xiàng)目需求

項(xiàng)目需求

1)瀏覽器請求進(jìn)入index.js
2)index.jsp根據(jù)路勁請求服務(wù)器跳轉(zhuǎn)hello.jsp

SpringMVC搭建

1)基本目錄結(jié)構(gòu)
創(chuàng)建Maven項(xiàng)目

項(xiàng)目名稱

Maven倉庫配置

項(xiàng)目路結(jié)構(gòu)

1)web項(xiàng)目路結(jié)構(gòu)充完整
2)右鍵新創(chuàng)建的文件夾 --》mark Directory as (一個(gè)源碼文件 一個(gè)資源目錄)

2) Maven導(dǎo)入架包(pom.xml)
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!--  編譯環(huán)境  -->
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <!-- 定義Spring版本號 -->
    <spring.version>5.0.2.RELEASE</spring.version>
  </properties>


  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.0</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>
3) 配置前端控制器(web.xml)
 <!-- 配置前端控制器 -->
  <servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <!-- 加載Spring DispatcherServlet 類-->
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 同時(shí)加載SpringMVC配置文件 -->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc.xml</param-value>
    </init-param>

    <!--
      <load-on-startup>1</load-on-startup>
      1)load-on-startup 元素標(biāo)記容器是否在啟動(dòng)是就加載這個(gè)Servlet(實(shí)例化并調(diào)用其init()方法)
      2)它的值必須是一個(gè)整數(shù)
      3)它的值大于0或等于0的整數(shù)表示在項(xiàng)目啟動(dòng)時(shí)就加載并初始化這個(gè)servlet
      4)當(dāng)它的值小于0或未填寫時(shí)瞻讽,表示該servlet在被選擇是才會(huì)去加載并初始化
      5)它的數(shù)值大于等于0時(shí),數(shù)值越低刚照,表示他被加載初始化的優(yōu)先級越高
      6)正值相同時(shí)皿渗,容器會(huì)自動(dòng)選擇順序加載
    -->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <!--
      / 任意請求都會(huì)經(jīng)過Servlet
    -->
    <url-pattern>/</url-pattern>
  </servlet-mapping>
4) 在resouces目錄下新建一個(gè)springmvc.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.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">
  <!-- 開啟注解掃描 -->
  <context:component-scan base-package="work.chenc.*"></context:component-scan>

  <!-- 開啟視圖解析器
    試題解析器對象:class 是固定的
  -->
  <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <!-- 轉(zhuǎn)發(fā)是尋找指定目錄 -->
    <property name="prefix" value="WEB-INF/pages/"></property>
    <!-- 尋找文件的后綴文件名 這里是 .jsp文件 -->
    <property name="suffix" value=".jsp"></property>
  </bean>

  <!-- 開啟SpringMVC注解支持 - 可暫不開啟 -->
  <mvc:annotation-driven/>

</beans>
5) 在java文件下創(chuàng)建一個(gè)控制器

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

@Controller
public class HelloController {

    @RequestMapping(path = "/hello")
    public String sayHello() {
        System.out.println("Hello ");
        return "hello";
    }
}
6) webapp下的index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
  <title>Title</title>
</head>
<body>
  <h3>首頁</h3>
  <a href="hello">跳轉(zhuǎn)hello頁面</a>
</body>
</html>
7) 在WEN-INF新建一個(gè)pages文件夾同時(shí)在該文件夾下新增一個(gè)hello.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
  <title>Title</title>
</head>
<body>
  <h2>say hello</h2>
</body>
</html>
8) 配置Tomcat

ps:配置Tomcat將不做贅述烟勋,可自行百度

9)啟動(dòng)Tomcat訪問index.jsp
index.jsp
10)點(diǎn)擊 - 跳轉(zhuǎn)hello頁面
hello.jsp

控制臺打印結(jié)果

10)整個(gè)請求執(zhí)行流程圖


流程圖

通過流程圖可知DipatcherServlet(前端控制器)相當(dāng)于一個(gè)調(diào)度器,所有的請求都會(huì)通過來找到對應(yīng)的映射凌外,從而進(jìn)行進(jìn)一步處理末早,把最終處理的界面再返還給DipatcherServlet烟馅,再由DipatcherServlet返回給瀏覽器

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市然磷,隨后出現(xiàn)的幾起案子郑趁,更是在濱河造成了極大的恐慌,老刑警劉巖姿搜,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寡润,死亡現(xiàn)場離奇詭異,居然都是意外死亡舅柜,警方通過查閱死者的電腦和手機(jī)梭纹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來致份,“玉大人变抽,你說我怎么就攤上這事〉椋” “怎么了绍载?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長滔蝉。 經(jīng)常有香客問我击儡,道長,這世上最難降的妖魔是什么蝠引? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任阳谍,我火速辦了婚禮,結(jié)果婚禮上立肘,老公的妹妹穿的比我還像新娘边坤。我一直安慰自己,他們只是感情好谅年,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布茧痒。 她就那樣靜靜地躺著,像睡著了一般融蹂。 火紅的嫁衣襯著肌膚如雪旺订。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天超燃,我揣著相機(jī)與錄音区拳,去河邊找鬼。 笑死意乓,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的笆凌。 我是一名探鬼主播圣猎,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼乞而,長吁一口氣:“原來是場噩夢啊……” “哼送悔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起爪模,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤屋灌,失蹤者是張志新(化名)和其女友劉穎洁段,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體声滥,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡眉撵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年落塑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了罐韩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片憾赁。...
    茶點(diǎn)故事閱讀 39,902評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡龙考,死狀恐怖矾睦,靈堂內(nèi)的尸體忽然破棺而出晦款,到底是詐尸還是另有隱情枚冗,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布坛怪,位于F島的核電站股囊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏稚疹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一怪嫌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧喇勋,春花似錦、人聲如沸贰拿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缴允。三九已至,卻和暖如春矗漾,著一層夾襖步出監(jiān)牢的瞬間薄料,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工摄职, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蛔垢。 一個(gè)月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓迫悠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親甫男。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容