文档章节

利用Spring MVC提供Web内容

火亮
 火亮
发布于 2015/07/17 17:52
字数 722
阅读 28
收藏 0

本文将带你体验利用Spring创建'Hello world'web站点的过程。

你将要构建的东西

你将构建一个在以下地址接受HTTP GET请求的服务:

http://localhost;8080/greeting

并将会以一个展示以下内容的web页面:

"Hello, World!"

你也可以使用一个name参数自定义greeting的结果:

http://localhost:8080/greeting?name=User

应答内容将会变成:

"Hello, User!"

你需要的东西

  • 一个你最喜欢的IDE
  • JDK1.8或者更新
  • Maven 3.0+

如何完成这个计划

在IDE里面创建一个普通Maven工程,该工程将包含以下结构:

--src

  -- main

      --java

          --hello

     --resources

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.springframework</groupId>
    <artifactId>gs-serving-web-content</artifactId>
    <version>0.1.0</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.2.5.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
    </dependencies>

    <properties>
        <java.version>1.8</java.version>
    </properties>


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>spring-milestone</id>
            <url>https://repo.spring.io/libs-release</url>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>spring-milestone</id>
            <url>https://repo.spring.io/libs-release</url>
        </pluginRepository>
    </pluginRepositories>

</project>

Spring Boot Maven plugin提供许多便利的功能:

  • 收集classpath中所有jar并构建一个单个的、可执行的jar
  • 搜索public static void main方法来标记一个可运行的类
  • 提供一个内置的依赖解析器

创建web controller

在Spring构建web站点的方法中,HTTP请求由controller处理。你可以简单的通过@Controller注解来标识这些请求。下面例子中,GreetingController通过返回一个View的名字从而为/greeting处理GET请求,View负责渲染HTML内容。

src/main/java/hello/GreetingController.java

package hello;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class GreetingController {

    @RequestMapping("/greeting")
    public String greeting(@RequestParam(value="name", required=false, defaultValue="World") String name, Model model) {
        model.addAttribute("name", name);
        return "greeting";
    }

}

这个控制器简单精炼,但是却做了很多事情,让我们来一步一步拆解他。

@RequestMapping注解确保到/greeting的HTTP请求被映射到了greeting()方法上

注意:上面例子并未指定GET\PUT\POST等等,因为@RequestMapping默认映射所有HTTP操作,用@RequestMapping(method=GET)来缩小映射范围。

@RequestParam绑定查询字符串参数name的值到greeting()方法的name参数。该查询参数不是必须的,如果这个参数缺失,默认值"World"就出来了。name参数的值被添加到Model对象中,最终使得能在视图模板中访问。

方法体的实现依赖视图技术,这个例子中用的是Thymeleaf,来执行服务端的HTML渲染。Thymeleaf解析下面的greeting.html模板并计算th:text表达式以渲染${name}的值

src/main/resources/templates/greeting.html

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Getting Started: Serving Web Content</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
    <p th:text="'Hello, ' + ${name} + '!'" />
</body>
</html>


原文请参考:http://spring.io/guides/gs/serving-web-content/#scratch

© 著作权归作者所有

下一篇: Properties ORM
火亮
粉丝 0
博文 11
码字总数 1867
作品 0
深圳
程序员
私信 提问
Alfresco开发文档 - 系统架构简介

要使用Alfresco做开发,首先了解一下Alfresco的整个系统架构,在此之前,最好了解一下Java开发的基本知识和Spring框架。当然,你不必是这方面的高手,只要了解一下就行,以免这里介绍的内容你...

YipChooli
2010/04/09
4.9K
10
Alfresco项目介绍

这里简单地对Alfresco项目进行一下介绍吧,很多人可能对于Alfresco能做什么,对比别的开源产品,有什么特点可能不是很了解。 产品的定位 Alfresco是面向企业级应用的内容管理系统,它的基础是...

YipChooli
2010/04/08
4.2K
2
spring boot(1)入门

1 简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置...

刘胜球
2017/10/25
0
0
最全的Spring面试题和答案

1、什么是Spring框架?Spring框架有哪些主要模块? Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring帮助开发者解决了开发中基础性的问题,使得开发人员...

流氓兔-
02/22
0
0
Spring Boot 项目搭建

从根本上来说,Spring Boot的项目只是普通的Spring项目,只是它们正好用到了Spring Boot的起步依赖和自动配置而已。因此,那些你早已熟悉的从头创建Spring项目的技术或工具,都能用于Spring ...

爆米花9958
2018/08/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux修改时区的正确方法【修改时间,需要修改软连接,靠谱】

CentOS和Ubuntu的时区文件是/etc/localtime,但是在CentOS7以后localtime以及变成了一个链接文件 [root@centos7 ~]# ll /etc/localtime lrwxrwxrwx 1 root root 33 Oct 12 11:01 /etc/loca......

Airship
29分钟前
0
0
《Netkiller Spring Cloud 手札》之 Master / Slave 主从数据库数据源配置

5.19.1. Master / Slave 主从数据库数据源配置 5.19.1.1. application.properties spring.datasource.master.driverClassName = com.mysql.cj.jdbc.Driverspring.datasource.master.url=j......

netkiller-
33分钟前
36
0
大数据(hadoop-HDFS的本地开发环境的配置与常见的HDFS的JAVA API)

HDFS的本地开发环境搭建 1:所需工具 1)hadoop2.7.3安装包 2)hadoop-eclipse-plugin插件 https://github.com/winghc/hadoop2x-eclipse-plugin 2:搭建过程 1:解压hadoop2.7.3文件2:下载...

这很耳东先生
44分钟前
1
0
TCP协议的定义和丢包时的重传机制

TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,...

tantexian
44分钟前
2
0
图解Tomcat类加载机制(阿里面试题)

Tomcat的类加载机制是违反了双亲委托原则的,对于一些未加载的非基础类(Object,String等),各个web应用自己的类加载器(WebAppClassLoader)会优先加载,加载不到时再交给commonClassLoader走双...

群星纪元
50分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部