1. 程式人生 > >idea搭建基於maven的 springmvc 框架 一

idea搭建基於maven的 springmvc 框架 一

springMVC的搭建需要如下前置條件
1)安裝Maven並配置好環境變數,筆者使用的V3.5.3
2)安裝tomcat,筆者使用的V8.5
本文介紹瞭如何在idea上搭建基於maven的springmvc框架,主要包括如下內容:
1)建立maven的webapp框架;
2)引入springMVC框架及配置檔案;
3)修改web.xml檔案及dispatcher-servlet.xml內容,dispatcher-servlet.xml檔案通過springMVC的IOC為dispatcherservlet提供初始化引數。負責對control類載入掃描、註解驅動以及資源配置導航;
4)建立controller類和jsp檔案;
5)編輯pom.xml匯入最小包。
6)執行測試
備註:一定要先引入springmvc框架,然後匯入maven包,否則因pom裡有springMVC引用而自動匯入springmvc框架且不生成上述.xml資訊。

1 基於maven建立webapp

  • 1.1 選擇 webapp
  • 1.2 填專案資訊


* 1.3 指定maven

2 新增springmvc框架

  • 2.1 add framdwork support

  • 選擇 spring - spring mvc


* 2.2 系統自動建立兩個xml檔案

  • 2.3 web.xml檔案自動填充springMVC配置資訊 並修改如下:
<!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> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <context-param> <param-name>contextConfigLocation</param-name
>
<param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>

從上面配置可以看出applicationContext.xml用於配置應用上下文

  • 2.4 applicationContext.xml暫不做處理
  • 2.5 dispatcher-servlet.xml
    該檔案是dispatcherServlet的初始化引數配置檔案,如改動名字可在web.xml中做如下配置
<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <!--配置dispatcher.xml作為mvc的配置檔案-->
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    <async-supported>true</async-supported>
</servlet>

該檔案主要是指定資原始檔資訊,配置如下:

<?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">

    <!--此檔案負責整個mvc中的配置-->

    <!--啟用spring的一些annotation -->
    <context:annotation-config/>

    <!-- 配置註解驅動 可以將request引數繫結到controller引數上 -->
    <mvc:annotation-driven/>

    <!--靜態資源對映-->
    <!--本專案把靜態資源放在了webapp的statics目錄下,資源對映如下-->
    <mvc:resources mapping="/css/**" location="/WEB-INF/statics/css/"/>
    <mvc:resources mapping="/js/**" location="/WEB-INF/statics/js/"/>
    <mvc:resources mapping="/image/**" location="/WEB-INF/statics/image/"/>

    <!-- 對模型檢視名稱的解析,即在模型檢視名稱新增前後綴(如果最後一個還是表示資料夾,則最後的斜槓不要漏了) 使用JSP-->
    <!-- 預設的檢視解析器 在上邊的解析錯誤時使用 (預設使用html)- -->
    <bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/view/"/><!--設定JSP檔案的目錄位置-->
        <property name="suffix" value=".jsp"/>
        <property name="exposeContextBeansAsAttributes" value="true"/>
    </bean>

    <!-- 自動掃描裝配 -->
    <context:component-scan base-package="com.uzone.controller"/>
</beans>

3 新增tomcat

  • 3.1

  • 3.2

  • 3.3

4 新增Java class和資源

  • 4.1 建立層

  • 4.2 設定java為sourceroot

  • 4.3 建立controller類


@Controller
@RequestMapping("/home")
public class IndexController {
    @RequestMapping("/index")
    public String index(){
        return "index";
    }
}
  • 4.4 Jsp檔案
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Index</title>
</head>
<body>
<p>Spring MVC </p>
</body>
</html>
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

5 pom.xml

以下為springMVC最小載入包
* servlet是springMVC的必備包,不許要解釋;
* spring-webmvc提供view層的核心封裝,提供各前端技術及標籤支援,spring-context提供spring上下文bean資訊。

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

<dependencies>
    <!--J2EE-->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.2</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
    <!--springframework-->    
    <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-webmvc</artifactId>
       <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>

</dependencies>

6 執行結果