一、开发环境
(一)安装JDK8+
(二)安装IntelliJ IDEA
(三)下载、安装和配置Maven
1、下载Maven压缩包
下载链接:https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/
2、解压Maven压缩包
- 解压到D:\Program Files\apache-maven-3.6.3-bin\apache-maven-3.6.3
3、配置Maven环境变量
- 创建新的环境变量MAVEN_HOME
单击【确定】按钮,查看创建的系统变量MAVEN_HOME
修改Path环境变量
启动命令行窗口,查看Maven是否安装配置成功
发布命令:mvn -version
(四)通过IDEA配置本地Maven仓库
- 在设置对话框的Maven项目里查看相关信息
修改Maven主目录
(五)Maven项目设置远程仓库
Spring Boot项目,使用Maven下载依赖非常慢。建议采用阿里镜像库,稳定且速度快。
1、找到Maven安装目录里conf下的settings.xml
2、在settings.xml文件里找到节点,添加阿里云镜像库地址
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
重启IntelliJ IDEA,让配置生效
三、使用Maven方式构建Spring Boot项目
(一)创建Maven项目HelloWorld01
- 选择创建的项目类型 - Maven
设置Maven项目Name、Location、GroupId与ArtifactId
单击【Finish】按钮
(二)修改Maven项目配置文件pom.xml
- pom: Project Object Model - 项目对象模型
- 添加parent和web的起步器依赖
<?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>net.hw.lesson01</groupId>
<artifactId>HelloWorld01</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.5</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
(三)创建启动类HelloWorld01Application
package com.wh.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
- 启动类必须添加注解符
@SpringBootApplication
- 在主方法里,利用
SpringApplication
类的run()静态方法启动HelloWorldApplication类的实例
(四)创建控制器HelloWorld01Controller
- 控制器是用于Web访问的
在net.wh.demo
包里创建controller子包,然后在子包里创建控制器HelloWorld01Controller
package net.wh.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloWorld01Controller {
@GetMapping("/hello")
public String hello() {
return "<h3>Hello Spring Boot World!</h3>";
}
}
-
控制器添加注解符@RestController,该注解为组合注解,等同于Spring中@Controller+@ResponseBody注解
-
方法添加注解符@GetMapping("/hello"),等同于Spring框架中@RequestMapping(RequestMethod.GET)注解
(五)运行启动类HelloWorld01Application
四、使用Spring Initializr方式构建Spring Boot项目
(一)创建Spring Boot项目HelloWorld02
- 创建项目,选择项目类型 - Spring Initializr
设置项目相关属性
注意:Artifact的值不能包含大写字母,Name属性值可以包含大写字母
添加Spring Web依赖
设置项目名称与保存位置
单击【Finish】按钮,查看生成的Spring Boot项目HelloWorld02
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>net.hw.lesson01</groupId>
<artifactId>helloworld02</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>HelloWorld02</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
(二)创建控制器DemoController
package net.wh.springboot.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class DemoController {
@ResponseBody
@RequestMapping("/hello")
public String hello() {
return "hello world";
}
}
(三)运行启动类DemoApplication
(四)在浏览器里访问http://localhost:8080/hello
(五)利用控制器返回页面
1、添加thymeleaf依赖
- 在pom.xml文件里添加thymeleaf依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
2、创建首页
- 在templates目录里创建index.html页面
4、修改控制器,添加映射方法,负责返回页面
package net.wh.springboot.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class DemoController {
@ResponseBody
@RequestMapping("/hello")
public String hello() {
return "hello world";
}
@GetMapping("/index")
public String index() {
return "index";
}
@GetMapping("/login")
public String login() {
return "login";
}
}
5、启动应用,访问http://localhost:8080/index
6、遇到问题控制器无法跳转页面
原因:我以前下载了thymeleaf依赖,所以导入的时候不需要再次下载,在pom.xml里面没有爆红,我就没有点击刷新,导致依赖没有导入进来
六、课后作业
任务1、创建Spring Boot项目输出学生信息
创建学生信息页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
学号:192001
姓名:末日铁拳
性别:男
年龄:20019
专业:后排蒸发
电话:900100
邮箱:0000
爱好:切安娜,打和尚
</body>
</html>
创建控制器StudentController
package net.wh.springboot.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class StudentController {
@GetMapping("/stu")
public String stu() {
return "student";
}
}
运行启动类,在浏览器访问http://localhost:8080/student
任务2、让HelloWorld02实现页面跳转功能
- 创建登录页面login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<from>
<table border>
<tr><th colspan="2"><h3>登录</h3></th></tr>
<tr><th>账号:</th><td><input type="text"></td></tr>
<tr><th>密码:</th><td><input type="password"></td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="登录"> <input type="reset" value="重置"></td></tr>
</table>
</from>
</body>
</html>
-
修改index页面,让超链接访问控制器里面的方法
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.w3.org/1999/xhtml"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>Hello World</h1> <p><a href="/login">跳转到登录页面</a></p> </body> </html>
-
修改控制器,让控制去进行跳转
package net.wh.springboot.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class DemoController { @ResponseBody @RequestMapping("/hello") public String hello() { return "hello world"; } @GetMapping("/index") public String index() { return "index"; } @GetMapping("/login") public String login() { return "login"; } }
-
启动应用,查看效果
-
点击跳转
任务3、点击登录可以跳转到登录成功页面。登录失败跳转到登录失败页面
- 创建LoginController
package net.wh.springboot.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.Map;
@Controller
public class LoginController {
@PostMapping("/user/login")
public String login(HttpServletRequest request, @RequestParam("username") String username, @RequestParam("pwd") String passwrod,
Map<String, Object> map){
if (username.equals("admin") && passwrod.equals("root")) {
return "secc";
} else {
return "nosecc";
}
}
}
-
创建修改login页面,添加了action和method
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/user/login" method="post"> <table border> <tr><th colspan="2"><h3>登录</h3></th></tr> <tr><th>账号:</th><td><input type="text" name="username"></td></tr> <tr><th>密码:</th><td><input type="password" name="pwd"></td></tr> <tr><td colspan="2" align="center"><input type="submit" value="登录"> <input type="reset" value="重置"></td></tr> </table> </form> </body> </html>
-
创建成功页面和失败页面,
-
运行类,查看效果
-
输入正确的信息
跳转到成功页面
-
输入错误的信息
-
跳转到失败页面
th>
账号:
密码:
-
创建成功页面和失败页面,
-
[外链图片转存中…(img-LpN2cp4J-1623999846591)]
-
运行类,查看效果
-
输入正确的信息
[外链图片转存中…(img-u2EzxCVK-1623999846591)]
跳转到成功页面
[外链图片转存中…(img-sBSbX3OB-1623999846592)]
-
输入错误的信息
-
跳转到失败页面