1,新建SpringBoot 项目
2,导入所需依赖
<!--web场景支持-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- jsp支持 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!-- jstl标签库 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
3,SpringMVC配置(application.properties)
#配置默认端口
server.post=8080
#配置错误页面
server.error.path=/error
# 配置session的过期时间
# m表示分钟 s表示秒
server.servlet.session.timeout=30m
#设置项目的访问路径
server.servlet.context-path=/
#设置字符编码
spring.http.encoding.charset=UTF-8
#上面这些配置不配置其实也行的,它都有默认值得。
#springboot 视图配置
#配置视图访问前缀
spring.mvc.view.prefix=/WEB-INF/jsp/
#配置视图访问后缀
spring.mvc.view.suffix=.jsp
4,web常用注解(简介)
@ Controller: 表示这是一个控制器(类似servlet)
@ RequestMapping: 路由,处理请求地址映射
@ GetMapping: 使用get方式处理请求地址映射
@ PostMapping: 使用post方式处理请求地址映射
@ ResponseBody: 异步请求返回JSON格式数据。
@ RequestBody: 接收前端传给后台的json格式数据
@PathVariable: 映射URL 绑定的占位符
@ RequestParam: 用于将指定的请求参数赋值给方法中的形参。
5,创建WebApp目录,创建hello.jsp
hello.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<%--给页面上的url填充地址(相对路径)--%>
<base href="/helloworldjsp" />
<title>HelloWorld_JSP</title>
<link rel="stylesheet" href="/static/css/hello.css">
</head>
<body>
<h3 align="center">你想了解我吗,
<br/> --springboot</h3>
<span class="hello-span">让我们进入spring的世界吧</span>
<img src="/static/image/spring_boot.png" >
</body>
</html>
6,编写Controller类
/**
* 返回json数据
* @return
*/
@RequestMapping("/getJson")
@ResponseBody
private Map<String,String> getJson(){
Map<String,String> modelMap = new HashMap<>();
modelMap.put("value1","asdfghjkl");
modelMap.put("value2","qwertyuiop");
return modelMap;
}
/**
* 返回jsp页面
* @return
*/
@GetMapping("/helloworldjsp")
private String helloWorldJsp(){
System.out.println("我即将前往神秘的JSP页面");
return "hello";
}
7,启动SpirngBoot启动类,测试结果。
过程中可能会遇到的问题:
- 404 访问不到 jsp 页面。
解决: 你要是用的model建的项目,那只需要把项目的 工作目录(working directory) 改为 Model working dir 。
但也就只能在工具内运行,要想打成 war 包发布到服务器,就不能用 model 建项目(用project建项目)或在 pom文件配打包路径 。
但我们springboot自带 Tomcat容器,所以我们还是打 jar 包会省很多工作,但是 打 jar 包就不把WebApp打包进去,所以官方推荐我们使用 前端模板引擎技术 (例如:Thymeleaf,FreeMarker,Velocity),使用模板引擎的好处是:前端页面不需要编译,能够直接在浏览器中打开并正确显示模板页面 ,和 jsp 对比就很好理解了。
使用模板引擎技术我们就能把页面打包进 jar包中(把页面理解成是一个静态文件)。所以SpringBoot推荐我们使用。