上一篇介绍了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个就好了,如果需要使用外部容器允许,需要额外配置,稍后会讲解
#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页面。
在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>
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
#用户绘画session过期时间,以秒为单位
server.servlet.session.timeout=36000m
# 配置默认访问路径,默认为/
server.servlet.context-path=/
# 配置Tomcat编码,默认为UTF-8
server.tomcat.uri-encoding=UTF-8
# 配置最大线程数
server.tomcat.max-threads=1000
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并运行
启动项目,依旧能看到页面