1、新建一个Gradle工程(Project)

在新建工程窗口的左侧中选择 [Gradle],右侧保持默认选择,点击next,模块命名为VelocityDemo。

2、在该工程下新建一个 module,在弹出的窗口的左侧中选择 [Gradle],右侧勾选[Spring MVC],如下图所示:

并勾选[Application server],下方选择框中选择Tomcat7.0,如无该选项,则选中右边的 [ New... ] -- [ Tomcat Server ],

配置 Tomcat 。配置好后,请选择它。点击next,模块命名为springmvc。

3、项目结构及类包规划如下图:

类包以分层的方式进行组织,当项目规模较大时可为每个子系统创建一个模块,模块内再分层。

注意:如果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>

4、测试

在进行下一步之前先验证一下以上配置的正确性,在IDE右上角的下拉框中选择Tomcat7.0,如图

点击绿色三角形启动,如果正常弹出index.jsp页面即表示正确。

5、用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 中添加即可。

6、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>

7、测试

启动Tomcat7.0,弹出index页面,点击链接进入login页面,点击登录进入main页面。

  

Demo源码下载:VelocityDemo.zip,后续章节将会在该Demo基础上集成Velocity和MyBatis。

Spring学习(二)——使用Gradle构建一个简单的Spring MVC Web应用程序的更多相关文章

  1. 构建一个简单的Spring Boot项目

    11 构建一个简单的Spring Boot项目 这个章节描述如何通过Spring Boot构建一个"Hello Word"web应用,侧重介绍Spring Boot的一些重要功能. ...

  2. 构建一个简单的基于MVC模式的JavaWeb

    零晨三点半了,刚刚几个兄弟一起出去吼歌,才回来,这应该是我大学第二次去K歌,第一次是大一吧,之后每次兄弟喊我,我都不想去,因为我还是很害怕去KTV,或许是因为那里是我伤心的地方,也或许是因为我在那里失 ...

  3. struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb

    在构建一个简单的基于MVC模式的JavaWeb 中,我们使用了JSP+Servlet+JavaBean构建了一个基于MVC模式的简单登录系统,但在其小结中已经指出,这种模式下的Controller 和 ...

  4. Spring 学习二-----AOP的原理与简单实践

    一.Spring  AOP的原理 AOP全名Aspect-Oriented Programming,中文直译为面向切面(方面)编程.何为切面,就比如说我们系统中的权限管理,日志,事务等我们都可以将其看 ...

  5. Python学习笔记23:Django构建一个简单的博客网站(一个)

    在说如何下载和安装Django,本节将重点讨论如何使用Django站点. 一 新建project 命令:django-admin startproject mysite # 有的须要输入:django ...

  6. go语言实现一个简单的登录注册web小程序

    最近学习golang也有一段时间了,基础差不多学了个大概,因为本人是java程序员,所以对web更感兴趣.根据<go web编程>中的例子改编一个更简单的例子,供新手参考,废话不多说,上菜 ...

  7. 【Android Developers Training】 3. 构建一个简单UI

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  8. tensorflow笔记(二)之构造一个简单的神经网络

    tensorflow笔记(二)之构造一个简单的神经网络 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7425200.html ...

  9. 在eclipse中配置一个简单的spring入门项目

    spring是一个很优秀的基于Java的轻量级开源框架,为了解决企业级应用的复杂性而创建的,spring不仅可用于服务器端开发,从简单性.可测试性和松耦合性的角度,任何java应用程序都可以利用这个思 ...

随机推荐

  1. leetcode451

    public class Solution { public string FrequencySort(string s) { var dic = new Dictionary<char, in ...

  2. MySQL修改redo_log_size

    MySQL5.5 步骤如下: 1. set global innodb_fast_shutdown = 0; 2. mysqladmin shutdown 3. 修改my.cnf innodb_log ...

  3. 利用FFmpeg玩转Android视频录制与压缩(二)<转>

    转载出处:http://blog.csdn.net/mabeijianxi/article/details/72983362 预热 时光荏苒,光阴如梭,离上一次吹牛逼已经过去了两三个月,身边很多人的女 ...

  4. ffmpeg源码分析三:transcode_init函数 (转3)

    原帖地址:http://blog.csdn.net/austinblog/article/details/25061945 transcode_init()函数是在转换前做准备工作的.下面看看其源代码 ...

  5. Linux下Spark框架配置(Python)

    简述  Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点:但不同于MapRedu ...

  6. 刷题向》关于一道比较优秀的递推型DP(openjudge9275)(EASY+)

    先甩出传送门:http://noi.openjudge.cn/ch0206/9275/ 这道题比较经典, 最好不要看题解!!!!! 当然,如果你执意要看我也没有办法 首先,显然的我们可以用 f [ i ...

  7. Chrome谷歌浏览器屏蔽百度搜索右侧广告推荐方法

    先上图百度广告,其实屏蔽广告很简单 主要分成以下三步: 下载Adblock Plus插件 安装Adblock Plus插件 开启屏蔽 一.下载Adblock Plus插件(官网离线版) 二.安装Adb ...

  8. 785. Is Graph Bipartite?从两个集合中取点构图

    [抄题]: Given an undirected graph, return true if and only if it is bipartite. Recall that a graph is  ...

  9. jQuery开发者眼中的AngularJS

    文章来源:http://blog.jobbole.com/76265/ AngualrJS是一个很贴心的web应用框架.它有很不错的官方文档和示例:经过在现实环境中的测试著名的TodoMVC proj ...

  10. leetcode - 3、Longest Substring Without Repeating Characters

    题目链接:https://leetcode.com/problems/longest-substring-without-repeating-characters/description/ 题目要求: ...