JSP
运行原理
- 首先由浏览器向Web服务器提出访问JSP页面的请求(Request)
- Web服务器中的JSP容器根据请求,将用户所需的JSP页面转换成Servlet,产生的Servlet经过编译后生成类文件,然后再把类文件加载到内存进行执行
- 最后由Web服务器将执行结果响应(Response,通常是HTML页面)返回给客户端浏览器
配置过程
1、新建工程,选择的 Packing 方式是 War
2、勾选Spring Web、Spring Boot DevTools 即可
3、在pom.xml 添加 tomcat 依赖
<!-- tomcat 支持 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
4、在 application.properties 配置文件中设置视图相关的
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
5、在 webapp 下新建 /WEB-INF/jsp 目录结构
6、在 jsp 文件夹中新建一个 index.jsp 文件,随便写点东西看看效果
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!doctype html>
<html lang="zh">
<head>
<title>Title</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head>
<body>
<%
String text = "JSP 服务端渲染";
%>
<div id='app' class="jumbotron jumbotron-fluid">
<div class="container">
<h1 class="display-3">HTML模板 & 数据渲染视图:</h1>
<p class="lead">{{info}}</p>
<p class="lead">
<%=text%>
</p>
<hr>
<p class="lead">
NUM:${num}
</p>
<p class="lead">
MSG:${msg}
</p>
<p class="lead">
JSP:${jsp}
</p>
</div>
</div>
<script>
new Vue({
el: '#app',
data: {
info: 'JavaScript 前端渲染 '
}
})
</script>
</body>
</html>
7、写个控制器
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HomeController {
@GetMapping("/")
public ModelAndView index() {
ModelAndView modelAndView = new ModelAndView("index");
modelAndView.addObject("num", 9);
modelAndView.addObject("msg", "来自控制器中的数据 ModelAndView");
modelAndView.addObject("jsp", "视图的服务端模板引擎");
return modelAndView;
}
}
8、启动项目,访问 http://127.0.0.1:8080/