【SSM框架從零開始1】IntelliJ IDEA搭建最簡單的Spring MVC項(xiàng)目

最近準(zhǔn)備簡單學(xué)一下后臺,不懂基本后臺開發(fā)框架感覺很虛,本科時(shí)候?qū)W了一點(diǎn)點(diǎn)SSH框架都已經(jīng)過時(shí)了。
先看一張圖,這個(gè)是Spring MVC的工作流程,最關(guān)機(jī)的是前端控制器,SpringMVC里面實(shí)現(xiàn)就是DispatcherServlet,等下搭建的時(shí)候就能看見。前端控制器攔截請求,是web的集中訪問點(diǎn),進(jìn)行請求的分發(fā),分發(fā)給相應(yīng)的控制器,與Spring IoC容器無縫集成,然后控制器與下面交互返回結(jié)果,前端控制器再根據(jù)結(jié)果去找對應(yīng)的視圖。

SpringMVC工作流程.jpg

1 Create New Project

選擇maven-webapp。


創(chuàng)建項(xiàng)目.png

然后依次填寫包名和ArtifactId。


項(xiàng)目信息填寫.png

然后一直選擇Next完成項(xiàng)目的創(chuàng)建。

2 Maven配置

spring mvc需要加入三個(gè)maven依賴。在pom.xml中的dependencies之間加入。

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

并在properties節(jié)點(diǎn)中聲明屬性,即${spring.version}值。

<properties>
    ......
    <!--spring版本-->
    <spring.version>5.0.5.RELEASE</spring.version>
</properties>

這樣項(xiàng)目構(gòu)建就能自動(dòng)下載對應(yīng)spring需要的包了。


spring依賴包.png

3 構(gòu)建java代碼路徑

在src/main下面新建java目錄,并新建包名目錄,這里我們只先新建controller層。如果發(fā)現(xiàn)java文件不是藍(lán)色的而是白色的說明沒有被識別為代碼路徑,需要手動(dòng)設(shè)置。將java目錄設(shè)置為代碼目錄:右鍵 java -> Make Directory as -> Sources Root。

4 新建spring mvc兩個(gè)配置文件。

在src目錄下新建目錄resources,如果發(fā)現(xiàn)resources文件不是藍(lán)色而是白色說明沒有被識別為資源目錄,需要手動(dòng)設(shè)置,右鍵設(shè)置為資源目錄: 右鍵resources-> Make Directory as -> Resources Root。


資源路徑設(shè)置.png

在resources下面新建一個(gè)xml作為spring servelet的配置文件,名字可以自己命名,我們這里命名mvc-dispatcher.xml。右鍵resources -> new -> XML Configuration File -> Spring Config,(如果Maven已經(jīng)配置了springmvc相關(guān)的包,這里就會有這個(gè)選項(xiàng))。

新建SpringMVC配置文件.png

同時(shí)在resources下面新建一個(gè)全局的spring mvc配置文件applicationContext.xml,新建方法和上面一樣,因?yàn)楸疚哪繕?biāo)是先打通整個(gè)流程,所以具體作用先不闡述,這個(gè)文件在目前在只有一個(gè)servlet的時(shí)候還沒有什么作用,但是在spring mvc框架中還是會用到的。

現(xiàn)在先不修改,先配置web.xml。

5 配置web.xml

打開webapp/WEB-INF/web.xml。

配置如下,主要是配置兩個(gè)配置文件:

<!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>
  <!--Spring MVC 配置 并添加監(jiān)聽-->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>

  <!-- 字符過濾器 傳值亂碼-->
  <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>
  </filter>
  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <!--配置前端控制器 進(jìn)行請求分發(fā) DispatcherServlet本質(zhì)也是一個(gè)Servlet -->
  <servlet>
    <!--名字可以自定義-->
    <servlet-name>SpringMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:mvc-dispatcher.xml</param-value>
    </init-param>
    <!--標(biāo)記容器啟動(dòng)的時(shí)候就啟動(dòng)這個(gè)servlet-->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>SpringMVC</servlet-name>
    <!--攔截所有-->
    <url-pattern>/</url-pattern>
  </servlet-mapping>

</web-app>

注意:web-app下面的節(jié)點(diǎn)有順序要求,如果順序錯(cuò)了會報(bào)錯(cuò)(DTD里面要求)。

6 修改spring mvc配置文件內(nèi)容mvc-dispatcher.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:p="http://www.springframework.org/schema/p"
       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/mvc
       http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 配置包掃描器 -->
    <context:component-scan base-package="com.cm.controller"/>
    <!-- 配置注解驅(qū)動(dòng) -->
    <mvc:annotation-driven/>
    <!-- 視圖解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!--前綴-->
        <property name="prefix" value="/WEB-INF/views/"/>
        <!--后綴-->
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

說一下幾個(gè)含義:
1、<context:component-scan base-package="com.cm.controller"/>
這個(gè)是定義掃描器,會自動(dòng)掃描包下面的所有有@Controller注解的類,注意值是包名
2、<mvc:annotation-driven/>
開啟注解驅(qū)動(dòng),這樣我們就能用注解。
3、<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
定義視圖解析器,其中包括前綴和后綴,這樣到時(shí)候controller返回字符串的時(shí)候,就會去/WEB-INF/views/下面找對應(yīng)字符串名字的jsp文件。所以需要在視圖里面創(chuàng)建views路徑。

6 新建自己的一個(gè)controller

在代碼目錄的com.cm.controller下面新建一個(gè)java類MyController.java。

package com.cm.controller;

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

@Controller
@RequestMapping("/developer")
public class MyController {
  @RequestMapping(value = "/hello", method = RequestMethod.GET)
  public String hello() {
    return "hello";
  }
}

有幾個(gè)關(guān)鍵:
1、 @Controller什么這是一個(gè)Controller,在掃描的時(shí)候就會把這個(gè)bean掃描進(jìn)去
2、 @RequestMapping("/developer")是對應(yīng)URL匹配,訪問之后dispatchservlet回去匹配,就是找RequestMapping對應(yīng)的類和方法。即訪問:http://localhost:8080/developer/hello,dispatchservlet就會調(diào)用hello方法。
3、返回值hello,根據(jù)前面的配置文件會去/WEB-INF/views/下面找hello.jsp。所以需要新建這個(gè)jsp。

7 新建對應(yīng)的視圖

因?yàn)榕渲梦募渲玫囊晥D位置是/WEB-INF/views/,所以在WEB-INF下新建views目錄,并在views目錄下新建hello.jsp。

<html>
<body>
    <h2>hello</h2>
</body>
</html>

8 運(yùn)行 配置tomcat

右上角Edit Configuration。


編輯配置.png

添加本地tomcat。


添加tomcat.png

添加項(xiàng)目。


添加項(xiàng)目.png

好了,這樣就可以運(yùn)行了。點(diǎn)擊右上角運(yùn)行。在跳出的主頁里面輸入訪問地址:http://localhost:8080/developer/hello,可以看見訪問結(jié)果。

訪問結(jié)果.png

最后再放上整個(gè)項(xiàng)目的結(jié)構(gòu)圖。


項(xiàng)目結(jié)構(gòu)圖.png

最后的最后,其實(shí)還有個(gè)問題,MVC,現(xiàn)在好像只有C和V,M可以自己建對應(yīng)的文件夾model,因?yàn)檫@個(gè)是最簡單的搭建,所以沒有涉及數(shù)據(jù)庫等的交互。

【SSM框架從零開始】系列文章鏈接:
IntelliJ IDEA搭建最簡單的Spring MVC項(xiàng)目
IntelliJ IDEA下Spring MVC數(shù)據(jù)庫配置與增刪改查開發(fā)
使用Mybatis-Generator自動(dòng)生成Dao、Model層相關(guān)代碼
IntelliJ IDEA搭建SSM框架

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,544評論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,265評論 6 342
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong閱讀 22,939評論 1 92
  • 都說吳黑白不懂事理 陳桃花生的一副好模樣唇紅齒白眉目如畫 他中意陳桃花 陳桃花也喜歡他 陳桃花不明說 吳黑白不敢說...
    逆風(fēng)滑手閱讀 209評論 0 0
  • 比起手機(jī)屏射的手機(jī)屏幕亮度,更氣人的是投到電影屏幕上的閃光燈。比起此起彼伏連綿不絕的抓爆米花和拒絕爆米花的聲音,更...
    木鼓閱讀 470評論 0 1

友情鏈接更多精彩內(nèi)容