zoukankan      html  css  js  c++  java
  • springboot笔记-使用JSP

    Spring Boot 项目中使用 JSP:

    项目结构:需要添加webapp文件夹用来存放目录 jsp 文件

    spring-boot-jsp
     +-src
        +- main
             +- java
             +- resources
             +- webapp
                  +- WEB-INF
                     +- jsp
                        +- welcome.jsp
        +- test
     +-pom.xml

    在配置文件application.properties中指定 jsp 的位置和后缀。
    spring.mvc.view.prefix=/WEB-INF/jsp/
    spring.mvc.view.suffix=.jsp

    引入依赖包

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
    </dependency>

    简单写一个页面:

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>jsp welcome</title>
    </head>
    <body>
        Time:  ${time}
        <br>
        Message: ${message}
    </body>
    </html>

    后端程序

    @Controller
    public class WelcomeController {
    
        @GetMapping("/")
        public String welcome(Map<String, Object> model) {
            model.put("time", new Date());
            model.put("message", "hello world");
            return "welcome";
        }
    
    }

    打war 在tomcat中运行:
    (1)在 pom.xml 里设置打包格式为 war。
    <packaging>war</packaging>
    (2)排除内嵌的 Tomcat 依赖


    打包时排除掉内嵌的 Tomcat 依赖,避免 jar 包冲突。

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <!-- 排除内置容器,排除内置容器导出成 war 包可以让外部容器运行spring-boot项目-->
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    Servlet 的支持:
    Spring Boot 项目必须实现 SpringBootServletInitializer 接口的 configure() 方法才能让外部容器运行 Spring Boot 项目,启动类同目录下创建 ServletInitializer 类:

    public class ServletInitializer extends SpringBootServletInitializer {
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(JspApplication.class);
        }
    }

    打包发布,在项目根目录执行 maven 命令:
    mvn clean package
    将 war 包发布到 Tomcat 即可。

  • 相关阅读:
    Codeforces 1163E 高斯消元 + dfs
    Codeforces 1159E 拓扑排序
    Codeforces 631E 斜率优化
    Codeforces 1167F 计算贡献
    Codeforces 1167E 尺取法
    Gym 102007I 二分 网络流
    Codeforces 319C DP 斜率优化
    Codeforces 1163D DP + KMP
    Comet OJ
    Vue 的响应式原理中 Object.defineProperty 有什么缺陷?为什么在 Vue3.0 采用了 Proxy,抛弃了 Object.defineProperty?
  • 原文地址:https://www.cnblogs.com/qq99514925/p/11570011.html
Copyright © 2011-2022 走看看