springboot开发之使用外部servlet容器及对jsp的支持
一般而言,springboot是使用自己内嵌的servlet容器,比如tomcat等等,而且默认的模板引擎是thymeleaf,那么如何让springboot使用外部的servlet容器并支持对jsp的使用呢?
接下来,我们使用编辑器idea来看一下。
1、新建一个springboot项目时选择war
加入启动器web
点击next,然后点击finish。
此时目录结构如下:
并没有之前的web项目的/webapp/WEB-INF/
2、创建web项目对应的目录结构
点击idea中右上角的这个按钮:
我们可以看到:
我们双击红色文字:弹出
点击OK即可。
我们同时注意到上面的:
选择web.xml,弹出
我们将路径修改为自己:项目下srcmainwebappWEB-INFweb.xml,点击OK即可。最后点击OK。
此时就会生成web项目相关文件:
接下来,我们点击:
选择:
我们给该服务起个名:tmcat8,同时引入自己本地的文件,选择Configure
之前添加了tomcat7,这次我们选择tomcat8
点击OK,我们再将注意力转到Deployment:选择
选择要部署的war包:
点击OK。最后点击Apply,点击OK。
然后我们就可以启动我们刚刚配置的tomcat8了。
我们在浏览器中 :
说明是成功的了。
3、下面我们再编写页面测试一下:
我们在webapp下新建一个hello.jsp,并在浏览器中输入localhost:8080/hello.jsp
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2020/2/5
Time: 13:40
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>hello</h1>
</body>
</html>
成功得到相应界面。
我们再在hello.jsp中添加跳转的:
<a href="/test">test</a>
在application.properties配置文件中配置视图解析器
spring.mvc.view.prefix=/WEB-INF/
spring.mvc.view.suffix=.jsp
在WEB-INF下新建一个views文件夹,向文件夹里面新建一个success.jsp
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2020/2/5
Time: 13:47
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>success</h1>
<h4>${username}</h4>
</body>
</html>
在com.gong.springboot下新建一个controller包,在该包下新建一个TestController.java
package com.gong.springboot.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class TestController {
@RequestMapping("/test")
public String test(Model model){
model.addAttribute("username","tom");
return "views/success";
}
}
最后我们看下目录结构:
启动服务器:
点击test:
跳转到success.jsp ,成功取得相应信息。
至此在springboot中使用外部servlet容器以及对jsp的支持就完成了。
关键说明:
(1)必须新建一个war项目
(2)pom.xml中将嵌入式的tomcat指定为provided,说明目标环境已经有了。引用外部tomcat时系统会为我们自动导入。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
(2)必须有编写一个SpringBootServletInitializer的实现类,并调用configure方法:创建项目时已经有了。
package com.gong.springboot;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(ServletJspApplication.class);
}
}
。
- Bootstrap Metronic 学习记录(二)菜单栏
- WCF技术剖析之十一:异步操作在WCF中的应用(上篇)
- Bootstrap Metronic 学习记录(一)简介
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(49)-工作流设计-我的申请
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(47)-工作流设计-补充
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(46)-工作流设计-设计分支
- 瑞典研发未来概念车,车厢、底盘能分离,颠覆汽车使用方式
- WCF技术剖析之十一:异步操作在WCF中的应用(下篇)
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(45)-工作流设计-设计步骤
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(44)-工作流设计-设计表单
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(43)-工作流设计-字段分类设计
- 因为这个原因,你的工作即将被取代!
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(73)-微信公众平台开发-消息管理
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(72)-微信公众平台开发-消息处理
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- weblogic Schema validation schemaValidationEnabled=false 启动报错解决
- redis 反序列化deserialize异常问题解决
- redis 入门(二)——maven4.0 + Jedis2.9.0 + redis3.2.6 实战
- spring boot 启动报错Log4j2 could not find a logging implementation 解决
- spring boot 启动 NoClassDefFoundError: org/springframework/core/ErrorCoded 报错
- java.lang.NoSuchMethodError: org.springframework.core.ResolvableType.forInstance 错误解决
- spring boot启动 no method 'getPersistenceUtil'报错解决
- spring redis java.lang.IllegalStateException: Cannot load configuration class: redis.RedisTemplet报错
- Elasticsearch: Index template
- 基于rest风格对Neo4j进行调用访问之———httpClient
- spring boot + mybatis 访问 neo4j
- window下通过ELK框架进行大型日志线下的可视化分析
- 一句话解释ThreadLocal类
- ElasticsSearch 之 倒排索引
- tomcat返回cookie有双引号问题