专栏首页数据分析与挖掘springboot开发之使用外部servlet容器及对jsp的支持

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,弹出

我们将路径修改为自己:项目下src\main\webapp\WEB-INF\web.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);
    }

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • remix, balanced mixup

    绝命生
  • (三)golang--执行流程分析

    两种方式的区别: (1)如果我们先编译生成了可执行文件,那么我们可以将该可执行文件拷贝到没go开发环境的机器上,仍然可以运行; (2)如果我们直接运行go ru...

    绝命生
  • spring AOP之重用切点表达式

    在使用@Before(execution(value=""))使用切点时,如果是需要重复使用,可以进行统一的设置。

    绝命生
  • Python使用wordcloud+pillow基于给定图像制作词云

    大致思路:Python扩展库wordcloud可以用来制作词云,而pillow库提供了图像处理功能,代码结合二者创建了词云头像,其中把给定的图像作为参考,只保留...

    Python小屋屋主
  • 认识html元素

    前端现在越来越火,可以用去年热门的词语来形容——“风口上的猪”。希望这个系列的文集能够给“毫无任何基础,但是想转到前端的人”一点帮助。 认识一个html文档的基...

    用户1667431
  • 邮箱安全服务第6期 | 邮箱自身系统安全的防御部署实践

    前面几期我们介绍的是发现邮箱安全问题和分析问题,本期我们介绍一下邮箱系统安全防御及加固手段,可以重点解决邮箱系统通用应用漏洞缺陷防护和邮箱反入侵问题。为解决邮箱...

    安恒信息
  • OS Error: No address associated with hostname, errno = 7 【mac系统,flutter,android studio】

    1.请求一直报错误OS Error: No address associated with hostname, errno = 7

    sinnoo
  • 部署IaaS要考虑SaaS

    在部署IaaS之前,请首先考虑SaaS的选项,因为它可以为你的IT团队产生更大的回报。 亚马逊网络服务和基础架构即服务(IaaS)可能是市场上最引人注目的服务,...

    静一
  • 互联网经济上,流量是最浅薄的一层

    互联网的浪潮经常会让人误解,浪潮汹涌之时,人们以为一个浪头后还有无限个浪头,以为这股浪永无止境。当互联网跟商业结合,尤其是跟大众消费型商业结合时更是如此。互联网...

    用户2908108
  • Confluence 6 升级 Confluence 使用数据源

    如果你忘记进行这些步骤,Confluence 将会在你升级完成后停止启动,并且你将会看到下面的错误信息:

    HoneyMoose

扫码关注云+社区

领取腾讯云代金券