分享

springboot如何做到接口返回JSP页面

 Go_Ahead 2018-11-22
        作为初学者每一个技术的helloworld实际均来之不易,此处做个记录,提醒自己相关的注意事项,同时有助于自己对技术点的理解,技术在于实际,切勿纸上谈兵。
环境:
IDEA、java、springboot、tomcat等相关开发工具.
一、搭建项目
1.1、IDEA创建项目,File-new-project,如下图
选择 Spring Initializr
 
 1.2 点击Next进入下一步,填写具体的项目名称/包名(maven项目基本项)
 
 
 3.选择web模板
 4.保存项目路径
 5.初始项目结构如下(请忽略被涂掉的部分),即完成上述步骤后会默认建的文件
 
6.打开pom文件,加入相关依赖
 
  
 7.在application.properties中配置支持jsp
8.main文件夹下创建对应jsp文件
创建webapp/WEB-INF/jsp/xxx.jsp

9.创建继承SpringBootServletInitializer的子类


10.创建控制器类
 
 11.运行(可能是在做项目的缘故,习惯性的就是从主入口处启动服务)
主入口类右键运行,访问页面:http://localhost:8080/hello,结果出现该页面
 
 开始以为是控制器类controller类的注解是不是应该是@RestController,结果改成该注解后,访问页面返回的是hello字符串,并不是hello.jsp。
同时,要返回jsp页面是不能使用@RestController的,见官网相关说明:

Spring Boot 2.0 由于微服务的兴起而被广为人知,当我们在做微服务开发一般需要提供接口返回JSON,在Spring 4.0 以前需要@ResponseBody + @Controller合在一起使用,而在Spring 4.0 之后只需要使用@RestController 即可达到相同的效果。

1. Spring Boot 2.0 更是很友好地吸收了Spring 4.0 开始出现的@RestController.

记忆: @RestController注解相当于@ResponseBody + @Controller合在一起的作用

2. 值得注意的是,当我们使用Spring Boot 2.0 想要返回页面而不是提供json或者xml数据接口的时候,切记不能再使用@RestController了,只能使用@Controller.

3. Spring Boot 2.0 对返回页面 支持FreeMarker,Groovy,Thymeleaf,Muslache 多种模板技术,但是Spring Boot 2.0 缺憾是 由于默认使用内嵌的Tomcat容器,对于JSPs 这种模板技术支持不是很友好,所以我们其实完全可以使用其他的模板引擎技术,避免使用Jsps 模板和使用JSTL标签库

4. Spring Boot 2.0 封装了很多强大的模块和默认的XML配置,大大降低了开发难度。

5. Spring Boot 2.0 不仅 支持Spring MVC  (基于Servlet API ),支持Spring WebFlux (基于Reactive Streams API),而且也友好支持redies,mongodb 等No-SQL 数据库 集成以及消息处理中间件等。

6. Spring Boot 2.0 不止支持Spring Cloud 分布式服务框架集成(Spring 全家桶之一),也支持阿里巴巴 开源的 Dubbo 分布式服务框架集成。

 解决访问hello接口返回如下错误页面还得回头看看第9步中的注解,war包的不能用内嵌的容器启动,于是又配置的外部tomcat启动,如下图配置tomcat server:

可参考:https://blog.csdn.net/hadues/article/details/79334355

 再次访问http://localhost:8080/hello,成功显示hello.jsp页面 

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多