前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(8)SpringBoot整合JSP

(8)SpringBoot整合JSP

作者头像
IT云清
发布2022-05-07 16:20:48
7730
发布2022-05-07 16:20:48
举报
文章被收录于专栏:IT云清

   摘要:SpringBoot官方不推荐使用JSP来开发web页面,而是推荐如Thymeleaf,FreeMarker等模板引擎来开发,但是绝大部分做java的程序员还是习惯jsp;所以,本文先讲解SpringBoot如何支持jsp开发,后面再讲如何支持Thymeleaf。 整合jsp还是比较简单的,具体实践步骤如下:

1.pom.xml

我们先引入支持jsp的必要依赖:

代码语言:javascript
复制
        <!--jsp-->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <version>8.5.28</version>
        </dependency>
        <!--servlet-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
        </dependency>
        <!--jstl-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
2.写页面

鉴于大多数学习SpringBoot的程序员都是有spring开发经验的,一般习惯的包结构都是:

  • main
    • webapp
      • WEB-INF
        • jsp
          • index2.jsp

而我们SpringBoot项目结构目前不是这样的,所以我们也在项目下建一个这样的结构(此步骤不是必须的,后面会配视图路径前缀,你建的结构,只要前缀配完可以读到就可以了,这里这么写只是因为大部分人习惯这么写。):

640?wx_fmt=png
640?wx_fmt=png

然后写一个简单的页面,后面做访问测试用。

代码语言:javascript
复制
<%@ page language="java" contentType="text/html; charset=utf-8"
         pageEncoding="utf-8" %>
<div class="sm">
    <form method="POST" enctype="multipart/form-data" action="/upload/uploadBlog">
        <p>文件:<input type="file" name="file"/></p>
        <p><input type="submit" value="上传" /></p>
    </form>
</div>
3.配置视图

在application.properties中配置一下视图,如果你的包结构不是上面这样的,那你可以按照自己的结构配置即可,这里配置的是文件的前缀路径和文件后缀。

代码语言:javascript
复制
#jsp视图跳转
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

这样,当我们返回index2时,框架自动会去寻找/WEB-INF/jsp/index2.jsp这个文件的,他会自动组合前缀和后缀。注意:

代码语言:javascript
复制
/WEB-INF/jsp/

这后面是需要斜杠的,不然会组合成:/WEB-INF/jspindex2.jsp,会报错的。

4.写接口

注意,这个类的注解,不要再加@RestController,加完这个类所有的接口返回都自动成了json格式了,我们这里用@Controller就好。

代码语言:javascript
复制
package com.java4all.controller;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.multipart.MultipartFile;
/**
 * Author: momo
 * Date: 2018/3/30
 * Description:
 */
@Controller
@RequestMapping("web")
public class WebController {
    private final org.slf4j.Logger logger = LoggerFactory.getLogger("");
    @RequestMapping(value = "index",method = RequestMethod.GET)
    public String index(MultipartFile file){
        return "index2";
    }
}
5.ServletInitlalizer

ServletInitlalizer初始化,这个需要我们自己写一下,这样程序启动时会自动启动和加载servlet容器。

代码语言:javascript
复制
package com.java4all;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
/**
 * Author: momo
 * Date: 2018/3/30
 * Description:
 */
public class ServletInitlalizer extends SpringBootServletInitializer{
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return super.configure(builder);
    }
}
6.访问接口

我们去浏览器访问接口:http://localhost:8088/web/index 会得到如下结果:

640?wx_fmt=png
640?wx_fmt=png

本案例在github地址:https://github.com/lightClouds917/tmall/tree/dev

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.pom.xml
  • 2.写页面
  • 3.配置视图
  • 4.写接口
  • 5.ServletInitlalizer
  • 6.访问接口
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档