入门工程:

package com.example.demo.controller;

import com.example.demo.entity.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import java.util.Arrays;
import java.util.HashMap;
import java.util.Map; @RestController//返回json格式数据
public class DemoController { @RequestMapping(value="/demo/hello")
//http://localhost:8080/demo/hello
public String hello() {
return "hello";
} @RequestMapping(value="/demo/json")
//http://localhost:8080/demo/json
public Map<String, Object> json() {
Map<String, Object> map = new HashMap<>();
map.put("status", "OK");
map.put("data", Arrays.asList("aaa","bbb","ddd")); return map;
} @RequestMapping(value="/demo/auto")
//http://localhost:8080/demo/auto?id=1&no=2 自动复制到参数中
public Map<String, Object> auto(Integer id, int no) {
Map<String, Object> map = new HashMap<>();
map.put("id", id);
map.put("no", no); return map;
} @RequestMapping(value="/demo/xxx")
//http://localhost:8080/demo/xxx 可以单独赋值一个参数
public Map<String, Object> ann(
@RequestParam(name = "user", required = false, defaultValue = "admin") String account,
@RequestParam(name = "pass", required = false, defaultValue = "123") String password) {
Map<String, Object> map = new HashMap<>();
map.put("account", account);
map.put("password", password); return map;
} @RequestMapping(value="/demo/bean")
//http://localhost:8080/demo/bean 可以直接赋值给实体类的属性
public Map<String, Object> bean(User user) {
Map<String, Object> map = new HashMap<>();
map.put("account", user.getAccount());
map.put("password", user.getPassword()); return map;
}
}

实体类

package com.example.demo.entity;

public class User {
private String account;
private String password; public String getAccount() {
return account;
} public void setAccount(String account) {
this.account = account;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} @Override
public String toString() {
return "User{" +
"account='" + account + '\'' +
", password='" + password + '\'' +
'}';
}
}

Rest风格的使用

package com.example.demo.controller;

import com.example.demo.entity.User;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*; import java.util.List; @RestController
public class RestUserController {
// 通过id查询用户信息
// @RequestMapping(value = "/user/{id}", method = RequestMethod.GET)
@GetMapping("/user/{id}")
// @PathVariable从请求中找到id为可以的值赋值方法参数id
public void getUser(@PathVariable int id) {
System.out.println("查询到了id="+id);
} // 查询所有用户信息
@RequestMapping(value = "/user", method = RequestMethod.GET)
public void getUser() {
System.out.println("查询到所有信息");
} // 添加用户信息,同样可以将参数直接赋值给实体类
@RequestMapping(value = "/user", method = RequestMethod.POST)
public void saveUser(User user, Model model) {
System.out.println(model);
System.out.println("添加用户信息 user:"+ user);
} // 修改用户信息 可以使用json传参
@RequestMapping(value = "/user", method = RequestMethod.PUT)
public void updateUser(@RequestBody List<User> user) {
System.out.println("修改用户信息");
} // 修改用户信息
@RequestMapping(value = "/user/{id}", method = RequestMethod.DELETE)
public void deleteUser(@PathVariable int id) {
System.out.println("删除用户信息 id = " + id);
}
}

SpringBoot默认不支持jsp,需要配置支持

jsp配置

工程结构:

引入依赖tomcat-embed-jasper(版本号可以去掉)

<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>

修改打包方式为war

<packaging>war</packaging>

手动建立webapp目录,并生成web.xml

Idea生成web.xml方式:

到这里依然不能访问jsp

要在application.properties中添加如下配置:

spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

并写配置类

package com.boot.jsp.bootjsp.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping; @Controller
public class JspController { @GetMapping("/jsp")
public String index() {
return "index";
}
}

使用插件运行后,就可以使用http://localhost:8080/jsp访问jsp了

freemarker配置

工程目录:

引入freemarker依赖

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

index.ftl---freemarke页面

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试</title>
</head>
<body>
boot集成freemarker引擎
<br>
姓名: ${user.name}
年龄: ${user.age}
<#--生日: ${user.birth}-->
</body>
</html>
package com.boot.freemark.demo.bootfreemarker1.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping; import java.util.Date;
import java.util.HashMap;
import java.util.Map; @Controller
public class FreemarkerController {
@GetMapping("/index")
public String index() {
return "index";
} @GetMapping("/data")
public String data(Model model) {
Map<String, Object> map = new HashMap<>();
map.put("name","往屋里");
map.put("age", 10);
map.put("birth", new Date());
model.addAttribute("user", map); return "index";
}
}

配置后就可以直接通过url访问了

templates文件夹中放置模板文件

thymeleaf配置

工程结构:

引入依赖

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

模板:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>测试</title>
</head>
<body>
boot集成thymeleaf
<img src="data:images/tt.jpg">
</body>
</html>

配置类:

package com.boot.thyemeleaf.boootthyemeleaf.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping; import java.util.HashMap;
import java.util.Map; @Controller
public class ThymeleafController { @GetMapping("/index")
public String index() {
return "index";
} @GetMapping("/data")
public String data(Model model) {
Map<String, Object> map = new HashMap<>();
map.put("name","往屋里");
map.put("age", 10);
model.addAttribute("user", map); return "index";
}
}

静态资源配置:

spring.resources.staticLocations=修改静态资源的路径(一般不改)

默认路径在static目录下

静态资源可以在页面中直接使用路径进行访问,也可以通过URL进行访问,如上边的img资源

SpringBoot Web(SpringMVC)的更多相关文章

  1. Springboot系列(四)web静态资源配置详解

    Springboot系列(四)web静态资源配置 往期精彩 SpringBoot系列(一)idea新建Springboot项目 SpringBoot系列(二)入门知识 SpringBoot系列(三)配 ...

  2. SpringBoot 基础(二)

    目录 SpringBoot基础(二) 一.操作数据库 1. SpringBootJdbc 2. SpringBoot 整合 Mybatis 3. SpringBott 使用JPA 二.使用 Thyme ...

  3. Springboot 系列(九)使用 Spring JDBC 和 Druid 数据源监控

    前言 作为一名 Java 开发者,相信对 JDBC(Java Data Base Connectivity)是不会陌生的,JDBC作为 Java 基础内容,它提供了一种基准,据此可以构建更高级的工具和 ...

  4. SpringBoot入门(三)——入口类解析

    本文来自网易云社区 上一篇介绍了起步依赖,这篇我们先来看下SpringBoot项目是如何启动的. 入口类 再次观察工程的Maven配置文件,可以看到工程的默认打包方式是jar格式的. <pack ...

  5. SpringBoot入门(四)——自动配置

    本文来自网易云社区 SpringBoot之所以能够快速构建项目,得益于它的2个新特性,一个是起步依赖前面已经介绍过,另外一个则是自动配置.起步依赖用于降低项目依赖的复杂度,自动配置负责减少人工配置的工 ...

  6. SpringBoot入门(二)——起步依赖

    本文来自网易云社区 在前一篇我们通过简单几步操作就生成了一个可以直接运行的Web程序,这是因为SpringBoot代替我们做了许多工作,概括来讲可以分为起步依赖和自动配置.这一篇先来看看起步依赖. 项 ...

  7. SpringBoot入门(一)——开箱即用

    本文来自网易云社区 Spring Boot是什么 从根本上来讲Spring Boot就是一些库的集合,是一个基于"约定优于配置"的原则,快速搭建应用的框架.本质上依然Spring, ...

  8. Java EE 学习(9):IDEA + maven + spring 搭建 web(5)- 博客文章管理

    转载:Gaussic(一个致力于AI研究却不得不兼顾项目的研究生) . 注:在阅读本文前,请先阅读: Java EE 学习(5):IDEA + maven + spring 搭建 web(1) Jav ...

  9. Java EE 学习(8):IDEA + maven + spring 搭建 web(4)- 用户管理

    转载:Gaussic(一个致力于AI研究却不得不兼顾项目的研究生) 注:在阅读本文前,请先阅读: Java EE 学习(5):IDEA + maven + spring 搭建 web(1) ava E ...

随机推荐

  1. dfs 队列

    题目来源  poj 1562 Description The GeoSurvComp geologic survey company is responsible for detecting unde ...

  2. 青岛Uber优步司机奖励政策(1月4日~1月10日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  3. .net core 中后台获取前台 数据(post)的方法

    [HttpPost] public async Task<JsonResult> EditPoint() { Stream reqStream = Request.Body; string ...

  4. dubbo之基础应用

    一.Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服务模型的角度来看,Dubbo采用的是一种非常简单 ...

  5. Redis系列八 使用Jedis

    使用Jedis jar操作Redis 1.配置redis.conf文件,修改 2.建java工程,加入 jedis jar包 3.代码示例: package com.ntjr.redis; impor ...

  6. ORA-15032、ORA-15033—Linux环境

    SQL> alter diskgroup DATA add failgroup DATA_0000 disk '/dev/raw/raw12'; alter diskgroup DATA add ...

  7. hdu2553N皇后问题(dfs,八皇后)

    N皇后问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  8. mysql数据库基本操作命令

    1.登录命令 mysql -u root -p "password" 2.列出所有数据库 show databases; 3.使用数据库 use db_name 4.列出数据库中所 ...

  9. HTML 常见的 DOCTYPE 声明

    <!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前. <!DOCTYPE> 声明不是 HTML 标签:它是指示 web 浏览器关 ...

  10. 180615-精度计算BigDecimal

    文章链接:https://liuyueyi.github.io/hexblog/2018/06/15/180615-精度计算BigDecimal/ 180615-精度计算BigDecimal 目前接触 ...