Spring學習(二)——使用Gradle構建一個簡單的Spring MVC Web應用程序

一、新建一個Gradle工程(Project)html

在新建工程窗口的左側中選擇 [Gradle],右側保持默認選擇,點擊next,模塊命名爲VelocityDemo。java

二、在該工程下新建一個 module,在彈出的窗口的左側中選擇 [Gradle],右側勾選[Spring MVC],以下圖所示:web

image

並勾選[Application server],下方選擇框中選擇Tomcat7.0,如無該選項,則選中右邊的 [ New... ] -- [ Tomcat Server ],spring

配置 Tomcat 。配置好後,請選擇它。點擊next,模塊命名爲springmvc。spring-mvc

三、項目結構及類包規劃以下圖:mvc

image

類包以分層的方式進行組織,當項目規模較大時可爲每一個子系統建立一個模塊,模塊內再分層。app

注意:若是src下沒法建立Directory,須要手動修改springmvc.iml配置文件,以下:框架

<content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
      <excludeFolder url="file://$MODULE_DIR$/target" />
</content>

四、測試jsp

在進行下一步以前先驗證一下以上配置的正確性,在IDE右上角的下拉框中選擇Tomcat7.0,如圖imagemaven

點擊綠色三角形啓動,若是正常彈出index.jsp頁面即表示正確。

五、用Gradle下載Spring MVC相關包

編輯build.gradle文件,代碼以下:

apply plugin: 'idea' 
apply plugin: 'java'

repositories { 
    mavenCentral() 
    maven { url "http://repo.spring.io/release" } 
}

dependencies { 
    compile( 
            "org.springframework:spring-context:4.0.5.RELEASE", 
            "org.springframework:spring-web:4.0.5.RELEASE", 
            "org.springframework:spring-webmvc:4.0.5.RELEASE" 
    ) 
    testCompile("org.springframework:spring-test:4.0.5.RELEASE") 
    runtime("jstl:jstl:1.2") 
}

task copyJars(type: Copy) { 
    from configurations.runtime 
    into 'lib' // 目標位置 
} 

在build.gradle文件所在目錄下運行命令:gradle copyJars,gradle自動會分析jar其中依賴關係一併下載,lib目錄下就是你須要的jar包

Gradle文件的語法請讀者另找資料熟悉,若是還缺乏其餘包,自行在dependencies 中添加便可。

六、Spring MVC框架配置

首先須要對web.xml文件進行配置,以便Web容器啓動時可以自動啓動Spring容器,也能夠經過代碼配置Spring,

經過代碼配置Spring請參考文章:http://makble.com/gradle-example-to-build-spring-mvc-application

經過web.xml文件配置的方式以下:

6.1先在resources文件夾下添加Spring Config類型的文件,命名爲:applicationContext,

6.2在web.xml文件中添加以下代碼:

  <context-param> 
        <param-name>contextConfigLocation</param-name> 
        <param-value>classpath:applicationContext.xml</param-value> 
    </context-param> 
    <listener> 
        <listener-class> 
            org.springframework.web.context.ContextLoaderListener 
        </listener-class> 
    </listener>

    <servlet> 
        <servlet-name>spring-web</servlet-name> 
        <servlet-class> 
            org.springframework.web.servlet.DispatcherServlet 
        </servlet-class> 
    </servlet>

    <servlet-mapping> 
        <servlet-name>spring-web</servlet-name> 
        <url-pattern>*.html</url-pattern> 
    </servlet-mapping>

經過以上配置文件建立了一個名爲spring-web的Servlet,並對這個Servlet的URL路徑映射進行了定義,讓全部以.html爲後綴

的URL都能被spring-web Servlet截獲,進而轉由Spring MVC框架進行處理。請求被Spring MVC截獲後,首先根據請求的URL

查找到目標的處理控制器,並將請求參數封裝成一個「命令對象」一塊兒傳給控制器處理,控制器調用Spring容器中的業務Bean完

成業務處理工做並返回結果視圖。

6.3 在controller包下面建立一個類LoginController:

package controller;

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

import javax.servlet.http.HttpServletRequest;

@Controller 
public class LoginController {

    @RequestMapping(value = "/login.html") 
    public String loginPage() { 
        return "login"; 
    }

    @RequestMapping(value = "/loginCheck.html") 
    public ModelAndView loginCheck(HttpServletRequest request, LoginCommand loginCommand) { 
            return new ModelAndView("main"); 
    } 
}

建立LoginCommand 類

public class LoginCommand { 
    private String userName;

    private String password;

    public String getPassword() { 
        return password; 
    }

    public void setPassword(String password) { 
        this.password = password; 
    }

    public String getUserName() { 
        return userName; 
    }

    public void setUserName(String userName) { 
        this.userName = userName; 
    } 
}

6.4 在web-inf下建立一個與上一步定義的Servlet同名的Spring配置文件即spring-web-servlet.xml,代碼以下:

<!-- 掃描web包,應用Spring的註解 --> 
    <context:component-scan base-package="controller"/>

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
        <property name="prefix" value="/WEB-INF/view/"/> 
        <property name="suffix" value=".jsp"/> 
    </bean>

6.5 web-inf下建立login.jsp和main.jsp頁面,index頁面代碼以下:

<html> 
  <head> 
    <title>Hello</title> 
  </head> 
  <body> 
  <h1>歡迎!</h1> 
  <a href="/login.html">進入登陸頁面</a> 
  </body> 
</html>

login.jsp頁面代碼以下:

<html> 
<head> 
    <title>登陸</title> 
</head> 
<body> 
<c:if test="${!empty error}"> 
    <c:out value="${error}"/> 
</c:if> 
<form action="<c:url value="/loginCheck.html"/>" method="post"> 
    用戶名: 
    <input type="text" name="userName"> 
    <br> 
    密 碼: 
    <input type="password" name="password"> 
    <br> 
    <input type="submit" value="登陸"/> 
</form> 
</body> 
</html>

七、測試

啓動Tomcat7.0,彈出index頁面,點擊連接進入login頁面,點擊登陸進入main頁面。

image   image

Demo源碼下載:VelocityDemo.zip,後續章節將會在該Demo基礎上集成Velocity和MyBatis。

相關文章
相關標籤/搜索