首页 > 其他分享 >(8)SpringBoot整合JSP

(8)SpringBoot整合JSP

时间:2023-01-14 21:33:46浏览次数:60  
标签:web SpringBoot import springframework jsp 整合 org JSP servlet




(8)SpringBoot整合JSP_spring

SpringBoot官方不推荐使用JSP来开发web页面,而是推荐如Thymeleaf,FreeMarker等模板引擎来开发,但是绝大部分做java的程序员还是习惯jsp;所以,本文先讲解SpringBoot如何支持jsp开发,后面再讲如何支持Thymeleaf。


整合jsp还是比较简单的,具体实践步骤如下:

1.pom.xml

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

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

(8)SpringBoot整合JSP_spring_02

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

<%@ 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中配置一下视图,如果你的包结构不是上面这样的,那你可以按照自己的结构配置即可,这里配置的是文件的前缀路径和文件后缀。

#jsp视图跳转
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

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

/WEB-INF/jsp/

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

4.写接口

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

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容器。

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
会得到如下结果:

(8)SpringBoot整合JSP_java_03


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


(8)SpringBoot整合JSP_java_04




标签:web,SpringBoot,import,springframework,jsp,整合,org,JSP,servlet
From: https://blog.51cto.com/u_15936016/6007812

相关文章

  • 230114_50_SpringBoot入门
    主启动类详解packagecom.bill;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;@Spr......
  • SpringBoot中使用SpringSecurity
    1.maven配置<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency>2.新建html页面去......
  • springboot中的一些常用的知识
    1.lomboklombok就是为了简化代码的@Data注释@Data@AllArgsConstructor@NoArgsConstructorpublicclassPerson{privateStringname;privateStringadd......
  • Redis 6 学习笔记 3 —— 用SpringBoot整合Redis的踩坑,了解事务、乐观锁、悲观锁
    SpringBoot整合Redis时踩到的坑jdk1.8环境,用idea的SpringInitializr创建springboot项目,版本我选的2.7.6。pom文件添加的依赖如下,仅供参考。注意commons-pool2选错版本......
  • springboot @Autowried报错
     原因:没啥,就是idea偶尔有薄毛病 解决:作用是屏蔽一些无关紧要的警告。使开发者能看到一些他们真正关心的警告。从而提高开发者的效率@SuppressWarnings("all")......
  • SpringBoot——核心原理入门
    SpringBoot概述BuildAnythingwithSpringBoot:**SpringBootisthestartingpointforbuildingallSpring-basedapplications.SpringBootisdesignedtoget......
  • SpringBoot——初始化器解析
    初始化器Spring是一个扩展性很强的容器框架,为开发者提供了丰富的扩展入口,其中一个扩展点便是ApplicationContextInitializer(应用上下文初始化器)。 ApplicationConte......
  • SpringBoot——监听器解析
    监听器模式监听器模式有要素事件监听器广播器触发机制系统监听器监听器ApplicationListener@FunctionalInterfacepublicinterfaceApplicationListener<Eext......
  • 230113_50_SpringBoot入门
    EnableAutoConfiguration详解​ SpringBoot可以实现自动配置;@EnableAutoConfiguration注解用于告知springboot开启自动配置功能,这样自动配置才能生效。@AutoConfigura......
  • seata整合踩坑
    2019-11-2616:44:11[restartedMain]INFOo.s.b.a.l.AutoConfigurationReportLoggingInitializer-ErrorstartingApplicationContext.Todisplaytheauto-configura......