目录
2.新建controller、dao、pojo、service文件夹,并在pojo文件夹下新建Person实体类
3.在controller文件夹下新建TestController类
修改TestController类, 访问http://localhost:8080/getimg
转发传值:浏览器不能解析转发的jsp,可以转发(访问)文本文件, 也可以转发html文件
1.创建四个html文件:test.html、login.html、fail.html、success.html , 填入代码:
1、新建包utils,创建MyControllerAdvice类
Spring框架非常优秀,但问题在于"配置过多",造成开发效率低、部署流程复杂以及集成难度大等问题。为解决上述问题,Spring Boot应运而生。
一、入门案例(返回JSON数据)
1.创建springboot项目



还可以直接去Spring官网下载Spring Boot初始化包
2.新建controller、dao、pojo、service文件夹,并在pojo文件夹下新建Person实体类

package com.lbcjxx.springboot.pojo;
import lombok.Data;
//Data自动生成set+get+toString
@Data
public class Person {
private int id;
private int age;
private String name;
}
3.在controller文件夹下新建TestController类
@ResponseBody //返回对象转成JSON字符串 提供给Android ios小程序

package com.lbcjxx.springboot.controller;
import com.lbcjxx.springboot.pojo.Person;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class TestController {
// 以Json方式返回 SpingBoot默认已经支持json返回
// SpringBoot项目内嵌Tomcat
@RequestMapping("getperson")
@ResponseBody
public Person getperson(){
Person person=new Person();
person.setId(1);
person.setAge(20);
person.setName("testname123");
return person;
}
}
4.点击慢方法运行,也可以点击右上角绿色三角形图标直接运行,而不再需要使用Tomcat运行;Spring Boot默认使用8080端口号,所以我们在浏览器输入localhost:8080/getperson就可以访问到数据啦


二、热更新
热更新的好处就在于修改代码后不需要再重启项目,会自动的刷新,简化了繁琐的操作流程。
1.在settings中

2.在Edit Configurations中




三、静态资源访问和变更端口号、路径名称
都在改配置文件中添加代码:

1.变更端口号
#更改端口号
server.port=8086
2.变更路径名称
#变更路径
server.servlet.context-path=/springboot
3.引入数据集(图片音频视频什么的)

#引入数据集(图片音频视频什么的)-->静态资源访问
spring.web.resources.static-locations=classpath:/img
在resource中新建img,并放入一张照片


恢复原来的进行接下来的案例
四、用转发的方式进行图片、视频及音频访问
修改TestController类, 访问http://localhost:8080/getimg

转发传值:浏览器不能解析转发的jsp,可以转发(访问)文本文件, 也可以转发html文件
五、thymeleaf
在jsp中使用el表达式,但是html不认识el表达式,所以我们使用thymeleaf
访问浏览器,html支持thymeleaf,而不认识el表达式
要使用需要在pom.xml中导入thymeleaf依赖包:

<!-- thymeleaf-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
六、案例练习(利用表单请求、显示列表)
1.创建四个html文件:test.html、login.html、fail.html、success.html , 填入代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录失败</title>
</head>
<body>
<h1>
登录失败
</h1>
<a th:href="@{/login}">返回登录</a>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录页面</title>
</head>
<body>
<h1>登录页面</h1>
<a th:href="@{/getpng}">test页面</a>
<form th:action="@{/logincommit}" method="post">
<div>用户名:<input name="username"></div>
<div>密码:<input name="password"></div>
<div><input type="submit" value="提交"></div>
</form>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登陆成功</title>
</head>
<body>
登陆成功
</body>
</html>
<!DOCTYPE html>
<!--标签代码提示-->
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>test页面</title>
</head>
<body>
<h1>test</h1>
<a th:href="@{/login}">登录页面</a>
<img th:src="@{zp1.jpg}" width="200" height="100"/>
<!--<a th:href="@{/login}">登录页面</a>-->
<!--<img th:src="@{2.jpg}" width="200" height="100"/>-->
<!--html不认识el表达式-->
<!--html+thymeleaf-->
<!--<div>${name}</div>-->
<div th:text="${name}"></div>
<table border="1">
<tr>
<td>用户id</td>
<td>用户年龄</td>
<td>用户姓名</td>
</tr>
<tr th:each="person:${personList}">
<td th:text="${person.id}">用户id</td>
<td th:text="${person.age}">用户年龄</td>
<td th:text="${person.name}">用户姓名</td>
</tr>
</table>
</body>
</html>
2.在TestController类中添加代码
package com.lbcjxx.springboot.controller;
import com.lbcjxx.springboot.pojo.Person;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.ArrayList;
import java.util.List;
@Controller
public class TestController {
// 以Json方式返回 SpingBoot默认已经支持json返回
// SpringBoot项目内嵌Tomcat
@RequestMapping("getperson")
@ResponseBody
public Person getperson(){
Person person=new Person();
person.setId(1);
person.setAge(20);
person.setName("testname123");
return person;
}
@RequestMapping("getimg")
public String getimg(Model model){
// 不能解析转发的jsp
// return "2.jpg";
// return "index.jsp";
return "zp1.jpg";
}
@RequestMapping("test")
public String test(Model model){
// 不能解析转发的jsp
// return "2.jpg";
// return "index.jsp";
// return "1.txt";
model.addAttribute("name","testName");
List<Person> personList=new ArrayList<>();
for(int i=0;i<10;i++){
Person person=new Person();
person.setId(i);
person.setAge(20+i);
person.setName("testName"+i);
personList.add(person);
}
model.addAttribute("personList",personList);
return "test.html";
}
@RequestMapping("login")
public String login(){
return "login.html";
}
@RequestMapping("logincommit")
public String logincommit(Model model,String username,String password){
//todo user表select * from .. where ...
//1 ->成功 0->失败 2->注册(bug)
if(username.equals("admin")&&password.equals("123456")){
return "success.html";
}
return "fail.html";
}
}
3.运行项目





七、统一异常拦截
1、新建包utils,创建MyControllerAdvice类

package com.lbcjxx.springboot.utils;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
@ControllerAdvice
public class MyControllerAdvice {
// 程序抛出Exception异常 会被该方法拦截
@ExceptionHandler(value = Exception.class)
public String error(Exception e){
return "error.html";
}
}
2.创建error.html

3.随便制造个错误,则页面会跳转到error.html
上课内容总结 及 参考实践该博客:
【精选】SpringBoot开发之Spring Boot入门_头歌springboot_不服输的小乌龟的博客-优快云博客
本文介绍了SpringBoot的入门案例,包括创建项目、设置热更新、静态资源管理、转发机制、Thymeleaf模板引擎的使用以及异常处理。通过实例展示了如何在SpringBoot项目中组织结构和实现基本功能。


1611





