配置 Spring Boot 工程中支持 JSP

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 配置文件中设置视图相关的

# 原本默认的视图后缀是 html
# 修改为jsp
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>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

        <!-- Bootstrap CSS -->
        <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">

        <!-- Vue 脚本 -->
        <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 {

	// GET '/'
	@GetMapping("/")
	public ModelAndView index() {
		
		// 加载数据
//		model.addAttribute("num",9);
//		model.addAttribute("msg", "来自控制器中的数据");

		// 类似 Vue 中的 VM 部分
		
		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/

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值