Spring学习(二)——使用用Gradle构建一个简单的Spring MVC Web应用程序

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应用程序

时间: 2024-12-04 23:40:38

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

Android学习路线(四)构建一个简单的UI

Android应用的图形化用户界面的构建使用的是View 和 ViewGroup 对象的层次嵌套. View 对象通常是UI部件,例如 buttons 或者 text fields ,而 ViewGroup 是用来定义它的子布局如何排布的容器,它通常是不可见的,例如一个网格或者一个垂直的列表. Android提供XML词汇与View或者ViewGroup的子类的对应,这样的话你就可以通过XML元素的层级嵌套来定义你的UI. 另一种布局 使用XML声明UI比在运行时代码中声明更有用处可以在很多地方

构建一个简单的Spring Boot项目

11 构建一个简单的Spring Boot项目 这个章节描述如何通过Spring Boot构建一个"Hello Word"web应用,侧重介绍Spring Boot的一些重要功能.因为大多数的开发工具都支持Maven,所以我们使用它来构建这个应用. 网站 spring.io 包含了许多如何开始使用Spring Boot的指南.如果您需要解决具体的问题,可以先去这里看看.你可以跳过以下的步骤,通过 start.spring.io 网站来构建项目.这样做的话,你就可以直接编写代码啦.如果需

基于Maven + SSM (Spring、SpringMVC、Mybatis)构建一个简单的测试项目

最近在公司实习期间的培训交流中有机会接触到SSM,然后自己花费1周的时间投入学习.谈不上深刻理解其中原理,所以没有涉及理论知识,只是浅层次的学习如何使用,在此将学习过程记录整理出来,一方面自己备用:另一方面,分享出来和做技术的各位讨论交流. 现阶段的我还做不到知行合一,所以决定先学会用,然后再去深究原理.若有不足以及错误之处,望多多包涵.指教,谢谢. 废话不多说,直接开干! 1.开发环境搭建 推荐博客地址: MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建 2.Maven W

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

最近学习golang也有一段时间了,基础差不多学了个大概,因为本人是java程序员,所以对web更感兴趣.根据<go web编程>中的例子改编一个更简单的例子,供新手参考,废话不多说,上菜: 这个例子使用到了beego框架和beedb框架,如果是go新手beego和beedb得自己去google下载安装. 目录结构: index.go package controllers import ( "fmt" "github.com/astaxie/beego"

使用Gradle 构建一个SpringBoot + Spring Security + Mybatisplus的多模块系统

## 目标 - 使用 Gradle 构建一个多模块系统,熟悉脚本- 搭建 SpringBoot ,Spring Security ,Mybatis子模块,实现基本的 Hello World.可以独立运行. 总体步骤:新建父工程(gradle) - 配置maven - 新建多个子工程(SpringBoot ,Spring Security ,Mybatis) - 修改父子的build.gradle & 父的settings.gradle - xxxx  - 测试 顶顶顶 灌灌灌灌 github:

Android官方入门文档[3]构建一个简单的用户界面

Android官方入门文档[3]构建一个简单的用户界面 Building a Simple User Interface构建一个简单的用户界面 This lesson teaches you to1.Create a Linear Layout2.Add a Text Field3.Add String Resources4.Add a Button5.Make the Input Box Fill in the Screen Width You should also read?Layouts

Django入门第一步:构建一个简单的Django项目

Django入门第一步:构建一个简单的Django项目 1.简介 Django是一个功能完备的Python Web框架,可用于构建复杂的Web应用程序.在本文中,将通过示例跳入并学习Django.您将按照以下步骤创建功能完备的Web应用程序,并一路学习框架的一些最重要的功能以及它们如何协同工作. 学习目标: 了解Django是什么以及为什么他是一个伟大的web框架 了解Django的体系结构以及与其他框架的对比 独立搭建一个简单的Django项目和应用程序(app) 2.为什么要学习Django

Ant—使用Ant构建一个简单的Java工程(两)

博客<Ant-使用Ant构建一个简单的Java项目(一)>演示了使用Ant工具构建简单的Java项目,接着这个样例来进一步学习Ant: 上面样例须要运行多条ant命令才干运行Test类中的main函数,能不能简化须要运行命令呢?答案是肯定的,能够将build.xml文件里的脚本改成以下的脚本: <? xml version="1.0" encoding="UTF-8"?> <project name="test" d

spring batch(二):核心部分(1):配置Spring batch

spring batch(二):核心部分(1):配置Spring batch 博客分类: Spring 经验 java chapter 3.Batch configuration 1.spring batch 的命名空间 spring xml中指定batch的前缀作为命名空间. 示例: Xml代码   <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sprin