怎么使用jsp上面起了疑问,查阅了多方资料,找到过其他人的博客的描述,也找到了spring在github上的给出的例子,看完后稍微改动后成功

整合jsp,于是决定将整合过程记载下来。

无论使用的是那种ide,基本在maven的使用上都是相同的,本文使用的是myeclipse,创建maven web工程,pom中依赖如下:

[html] view
plain
 copy

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>cn.com</groupId>
  5. <artifactId>springboot-Web</artifactId>
  6. <packaging>jar</packaging>
  7. <version>1.0-SNAPSHOT</version>
  8. <name>springboot-Web Maven Webapp</name>
  9. <url>http://maven.apache.org</url>
  10. <parent>
  11. <groupId>org.springframework.boot</groupId>
  12. <artifactId>spring-boot-starter-parent</artifactId>
  13. <version>1.2.5.RELEASE</version>
  14. <relativePath/>
  15. </parent>
  16. <properties>
  17. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  18. <java.version>1.7</java.version>
  19. <version.spring>3.2.9.RELEASE</version.spring>
  20. <version.jackson>2.4.4</version.jackson>
  21. </properties>
  22. <dependencies>
  23. <dependency>
  24. <groupId>javax.servlet</groupId>
  25. <artifactId>jstl</artifactId>
  26. <version>1.2</version>
  27. </dependency>
  28. <dependency>
  29. <groupId>org.springframework.boot</groupId>
  30. <artifactId>spring-boot-starter-web</artifactId>
  31. </dependency>
  32. <!--WebJars-->
  33. <dependency>
  34. <groupId>org.springframework.boot</groupId>
  35. <artifactId>spring-boot-starter-test</artifactId>
  36. <scope>test</scope>
  37. </dependency>
  38. <dependency>
  39. <groupId>org.apache.tomcat.embed</groupId>
  40. <artifactId>tomcat-embed-jasper</artifactId>
  41. <scope>provided</scope>
  42. </dependency>
  43. </dependencies>
  44. <build>
  45. <plugins>
  46. <plugin>
  47. <groupId>org.springframework.boot</groupId>
  48. <artifactId>spring-boot-maven-plugin</artifactId>
  49. <!--<version>${spring.boot.version}</version>-->
  50. <configuration>
  51. <mainClass>cn.com.SpringBootWebApplication</mainClass>
  52. <layout>ZIP</layout>
  53. </configuration>
  54. <executions>
  55. <execution>
  56. <goals>
  57. <goal>
  58. repackage
  59. </goal>
  60. </goals>
  61. </execution>
  62. </executions>
  63. </plugin>
  64. </plugins>
  65. </build>
  66. <repositories>
  67. <repository>
  68. <id>spring-snapshots</id>
  69. <url>http://repo.spring.io/snapshot</url>
  70. <snapshots><enabled>true</enabled></snapshots>
  71. </repository>
  72. <repository>
  73. <id>spring-milestones</id>
  74. <url>http://repo.spring.io/milestone</url>
  75. <snapshots><enabled>true</enabled></snapshots>
  76. </repository>
  77. </repositories>
  78. <pluginRepositories>
  79. <pluginRepository>
  80. <id>spring-snapshots</id>
  81. <url>http://repo.spring.io/snapshot</url>
  82. </pluginRepository>
  83. <pluginRepository>
  84. <id>spring-milestones</id>
  85. <url>http://repo.spring.io/milestone</url>
  86. </pluginRepository>
  87. </pluginRepositories>
  88. </project>

其中最需注意的如下这个依赖,少了这一个不能使用jsp。

[html] view
plain
 copy

  1. <dependency>
  2. <groupId>org.apache.tomcat.embed</groupId>
  3. <artifactId>tomcat-embed-jasper</artifactId>
  4. <scope>provided</scope>
  5. </dependency>

同时在resources中的application.properties中配置如下:

[plain] view
plain
 copy

  1. spring.view.prefix=/WEB-INF/jsp/
  2. spring.view.suffix=.jsp
  3. application.message: Hello Phil
  4. server.port=8282

最下两个配置可有可无,上面的两个配置中,是配置jsp所在目录,在这里和官网略有不同,官网配的都是spring.mvc.view的配置,但这样

似乎不起作用,有了解的可以与本人探讨一下。

下面就是controller编写,具体不再讲解,仅贴出代码:

[java] view
plain
 copy

  1. package cn.com.controller;
  2. import org.springframework.beans.factory.annotation.Value;
  3. import org.springframework.stereotype.Controller;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. import java.util.Date;
  6. import java.util.Map;
  7. /**
  8. * Created by Administrator on 2016/5/6.
  9. */
  10. @Controller
  11. public class IndexController {
  12. @Value("${application.message:Hello World}")
  13. private String message = "Hello World";
  14. @RequestMapping("/")
  15. public String welcome(Map<String, Object> model) {
  16. model.put("time", new Date());
  17. model.put("message", this.message);
  18. return "welcome";
  19. }
  20. }

同时在启动类的编写如下:

[java] view
plain
 copy

  1. package cn.com;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.boot.builder.SpringApplicationBuilder;
  5. import org.springframework.boot.context.web.SpringBootServletInitializer;
  6. /**
  7. * Created by Administrator on 2016/5/6.
  8. */
  9. @SpringBootApplication
  10. public class SpringBootWebApplication extends SpringBootServletInitializer {
  11. @Override
  12. protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
  13. return application.sources(SpringBootWebApplication.class);
  14. }
  15. public static void main(String[] args) throws Exception {
  16. SpringApplication.run(SpringBootWebApplication.class, args);
  17. }
  18. }

在这里,使用jsp必须继承SpringBootServletInitializer类,在这使用其他文章的原文:

对于需要部署到传统servlet容器之中的应用,Boot提供了一种方式以编码的方式初始化Web配置。为了使用这一点,Boot提供了可选的WebApplicationInitializer,

它会使用servlet容器来注册应用,这会通过Servlet 3.0 API以编码的方式注册servlet并且会用到ServletContext。通过提供SpringBootServletInitializer的子类,

Boot应用能够使用嵌入的Spring上下文来注册配置,这个Spring上下文是在容器初始化的时候创建的。

如此之后,就可以启动springboot应用使用jsp了。

Spring Boot学习总结(2)——Spring Boot整合Jsp的更多相关文章

  1. Spring Boot 学习1-创建Spring Boot应用

    如果使用Maven, 确保先安装好Maven再继续. 创建POM文件 在这里有两种方式: 继承Spring Boot parent的pom. 不继承. 继承Spring Boot pom 1 2 3 ...

  2. 【Spring Boot学习之六】Spring Boot整合定时任务&异步调用

    环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2一.定时任务1.启动类添加注解@EnableScheduling 用于开启定时任务 package com.wjy; i ...

  3. 【Spring Boot学习之三】Spring Boot整合数据源

    环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2 一.Spring Boot整合Spring JDBC 1.pom.xml <project xmlns=&quo ...

  4. 【Spring Boot学习之四】Spring Boot事务管理

    环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2 一.springboot整合事务事务分类:编程事务.声明事务(XML.注解),推荐使用注解方式,springboot默 ...

  5. 【Spring Boot学习之一】Spring Boot简介

    环境 Java1.8 Spring Boot 1.3.2 一.Spring Boot特点1.使用java运行项目,内置tomcat,无需外部容器:2.减少XML配置,使用properties文件和注解 ...

  6. spring揭密学习笔记(1) --spring的由来

    1.spring起源于在EJB暴露出各种严重问题的情况应运而生. Spring是于2003年兴起的一个轻量级的Java开发框架, Spring倡导一切从实际出发,以实用的态度来选择适合当前开发场景的解 ...

  7. spring boot 学习笔记(二) 构建web支持jsp

    一.必须将项目打包成war包 <packaging>war</packaging> 二.pom.xml加入依赖包 <dependency> <groupId& ...

  8. Spring Boot 学习笔记 - 认识Spring Boot框架

    因各种原因,.NET前端工程师重新接触JAVA,真是向全栈的路上又迈出了无奈的一步. 下面正文: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初 ...

  9. Spring Boot 学习系列(10)—SpringBoot+JSP的使

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 解决问题 随着spring boot 框架的逐步使用,我们期望对于一些已有的系统进行改造,做成通用的脚手架, ...

  10. Spring Boot学习——第一个Spring Boot程序

    依照下面的步骤创建项目: 点击 Next 项目介绍: Application.java中的主要代码: @SpringBootApplication public class ReaderApplica ...

随机推荐

  1. Hibernate框架学习(二)——api详解

    一.Configuration对象 功能:配置加载类,用于加载主配置,orm元数据加载. //1.创建,调用空参构造(还没有读配置文件) Configuration conf=new Configur ...

  2. Caffe 激励层(Activation)分析

    Caffe_Activation 一般来说,激励层的输入输出尺寸一致,为非线性函数,完成非线性映射,从而能够拟合更为复杂的函数表达式激励层都派生于NeuronLayer: class XXXlayer ...

  3. 接口测试工具篇--postman

    上面是postman的主页面,可以输入接口url,设置请求方式(get或post) 下面主要讲一些其他接口测试需要用到的设置Authorization用来设置权限验证的,可以选择权限验证的方式 hea ...

  4. 大数相乘(牛客网ac通过)

    2019-05-172019-05-17 大数相乘基本思想: 相乘相加,只不过大于10先不进位到计算完后统一进位 #include <iostream> #include <stri ...

  5. Node_进阶_6

    Node进阶第六天 一.复习 cookie是在res中设置,req中读取的.第一次的访问没有cookie. cookie的存储大小有限,kv对儿.对用户可见,用户可以禁用.清除cookie.可以被篡改 ...

  6. 是否可以从一个static方法内部发出对非static方法的调用

    不可以.因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方 法调用,而static方法调用时不需要创建对象,可以直接调用.也就是说,当一个static方法被调用时 ...

  7. java后台生成图片二维码

    controller: /** * 获取登录的验证码 * @param request * @param response */ public void getLoginCode(HttpSessio ...

  8. PHP JWT初识

    一直没有好好看过jwt,直到前两天要做web验证,朋友给我推荐了jwt.才发现jwt已经被大家广泛的应用了.看来我有点out了.哈哈,趁着这个世界来好好看看这个. JWT(JSON Web Token ...

  9. redis为什么选择单线程工作模型

    1.先说一下为什么出现进程,线程 进程:在计算机发明之初就发现,在输入数据时(I/O速度慢),CPU是空闲的,这样就浪费了CPU资源,为了充分利用CPU资源,发明了进程,在输入程序A的数据时,程序B在 ...

  10. C++容器(五):set类型

    set类型 map容器是键-值对的集合,好比以任命为键的地址和电话号码.而set容器只是单纯的键的集合.当只想知道一个值是否存在时,使用set容器是最适合. 使用set容器必须包含set头文件: #i ...