Spring boot 集成Jsp

前言

上一篇介绍了Spring Boot中使用如何使用durid,这篇文章将介绍如何整合jsp进行web开发

项目结构

首先在src/main 下新建目录:webapp/WEB-INF/view 用于存放jsp文件,项目的静态资源统一放在resources的static下面,初始的项目结构如下

引入依赖

	
    
        org.springframework.boot
        spring-boot-starter-web
    

    
    
        javax.servlet
        jstl
    

    
    
        org.apache.tomcat.embed
        tomcat-embed-jasper
    

使用内嵌的tomcat容器来运行的话只要这3个就好了,如果需要使用外部容器允许,需要额外配置,稍后会讲解

配置application.properties

#jsp 文件存放的路径
spring.mvc.view.prefix: /WEB-INF/view/

#文件后缀
spring.mvc.view.suffix: .jsp

这里的spring.mvc.view.prefix和spring.mvc.view.suffix是Spring boot与我们约定的视图前缀后后缀配置,意思是找到/WEB-INF/view/目录下的.jsp文件,那么前缀后后缀之间少了文件的名称,这个名称将由控制器(Controller)给出,在控制器中指定返回的路径和名称,就能访问到具体的jsp页面。

编写相应文件

编写jsp文件

在view目录下创建index.jsp

<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>测试页面title>
head>
<body>
    ${msg}
body>
html>
编写Controller
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

@RestController
@RequestMapping("/index")
public class MyController {

    @GetMapping
    public ModelAndView index(Model model){

        model.addAttribute("msg","这是测试页面");
        return new ModelAndView("index");
    }
}

启动项目,访问:localhost:8080/index

内嵌tomcat属性配置

#用户绘画session过期时间,以秒为单位
server.servlet.session.timeout=36000m
# 配置默认访问路径,默认为/
server.servlet.context-path=/

# 配置Tomcat编码,默认为UTF-8
server.tomcat.uri-encoding=UTF-8
# 配置最大线程数
server.tomcat.max-threads=1000

配置外部tomcat容器部署war包

Spring Boot项目需要部署在外部容器中的时候,Spring Boot导出的war包如果直接在Tomcat的部署会报错,如需运行需进行如下修改

1、启动类继承SpringBootServletInitializer

外部容器部署的话,就不能依赖于Application的main函数了,而是要以类似于web.xml文件配置的方式来启动Spring应用上下文,此时我们需要在启动类中继承SpringBootServletInitializer并实现configure方法:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
public class SpringbootJspApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootJspApplication.class, args);
    }

    /**
     * 部署到tomcat需要添加如下代码
     * @param application
     * @return
     */
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(SpringbootJspApplication.class);
    }
}

2、修改pom.xml

添加依赖

	
    
        org.springframework.boot
        spring-boot-starter-tomcat
    

修改打包方式,把jar改成war

	
    1
    
    war

如果想修改打包的名称,需在build节点中加入

	
	  springBootJsp
	

添加外部tomcat并运行

启动项目,依旧能看到页面

你可能感兴趣的:(Spring boot 集成Jsp)