`

19. [视频]Spring Boot 添加JSP支持【从零开始学Spring Boot】

阅读更多

 

【视频&交流平台】

à SpringBoot视频

http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à SpringCloud视频

http://study.163.com/course/introduction.htm?courseId=1004638001&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à Spring Boot源码

https://gitee.com/happyangellxq520/spring-boot

à Spring Boot交流平台

http://412887952-qq-com.iteye.com/blog/2321532

 

 

【来也匆匆,去也匆匆,在此留下您的脚印吧,转发点赞评论;

      您的认可是我最大的动力,感谢您的支持】

 

看完本文章您可能会有些疑问,可以查看之后的一篇博客:

81. Spring Boot集成JSP疑问【从零开始学Spring Boot】 编辑

-------------------------------------------------------------------------------------------------------------------------------------

 

这个部分比较复杂,所以单独创建一个工程来进行讲解;

      大体步骤:

(1) 创建Maven web project;
(2) 在pom.xml文件添加依赖;
(3) 配置application.properties支持jsp
(4) 编写测试Controller
(5) 编写JSP页面
(6) 编写启动类App.java

 

 

说明:

 1,FreeMarker

2,Groovy
3,Thymeleaf (Spring 官网使用这个)
4,Velocity
5,JSP (貌似Spring Boot官方不推荐,STS创建的项目会在src/main/resources 下有个templates 目录,这里就是让我们放模版文件的,然后并没有生成诸如 SpringMVC 中的webapp目录)
不过本文还是选择大家都熟悉的JSP来举例,因为使用JSP与默认支持的模版需要特殊处理,所以拿来举例更好。

 

 

1)创建Maven web project

使用Eclipse新建一个Maven Web Project ,项目取名为:

spring-boot-jsp

 

2)在pom.xml文件添加依赖

 

<!-- spring boot parent节点,引入这个之后,在下面和spring boot相关的就不需要引入版本了; -->
    <parent>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-parent</artifactId>
       <version>1.3.3.RELEASE</version>
    </parent>
 

 

 

依赖包:

 

<!-- web支持: 1、web mvc; 2、restful; 3、jackjson支持; 4、aop ........ -->
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-web</artifactId>
       </dependency>
      
       <!-- servlet 依赖. -->
       <dependency>
           <groupId>javax.servlet</groupId>
           <artifactId>javax.servlet-api</artifactId>
           <scope>provided</scope>
       </dependency>
      
       <!--
           JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也是作为标准支持的。
          
           不然报异常信息:
           javax.servlet.ServletException: Circular view path [/helloJsp]: would dispatch back to the current handler URL [/helloJsp] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)
            
        -->
       <dependency>
           <groupId>javax.servlet</groupId>
           <artifactId>jstl</artifactId>
       </dependency>
      
      
      
       <!-- tomcat 的支持.-->
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-tomcat</artifactId>
           <scope>provided</scope>
       </dependency>
       <dependency>
           <groupId>org.apache.tomcat.embed</groupId>
           <artifactId>tomcat-embed-jasper</artifactId>
           <scope>provided</scope>
       </dependency>
 

 

 

Jdk编译版本:

<build>

       <finalName>spring-boot-jsp</finalName>

       <plugins>

           <plugin>

              <artifactId>maven-compiler-plugin</artifactId>

              <configuration>

                  <source>1.8</source>

                  <target>1.8</target>

              </configuration>

           </plugin>

       </plugins>

    </build>

 

3application.properties配置

上面说了spring-boot 不推荐JSP,想使用JSP需要配置application.properties 
添加src/main/resources/application.properties内容:

# 页面默认前缀目录

spring.mvc.view.prefix=/WEB-INF/jsp/

# 响应页面默认后缀

spring.mvc.view.suffix=.jsp

# 自定义属性,可以在Controller中读取

application.hello=Hello Angel From application

 

4)编写测试Controller

编写类:com.kfit.jsp.controller.HelloController

package com.kfit.jsp.controller;
 
import java.util.Map;
 
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
 
/**
 * 测试
 * @author Angel
 * @version v.0.1
 */
@Controller
public class HelloController {
      
       // 从 application.properties 中读取配置,如取不到默认值为Hello Shanhy
    @Value("${application.hello:Hello Angel}")
    private String hello;
   
      
       @RequestMapping("/helloJsp")
       public String helloJsp(Map<String,Object> map){
              System.out.println("HelloController.helloJsp().hello="+hello);
              map.put("hello", hello);
              return "helloJsp";
       }
}

 

 

5)编写JSP页面

src/main 下面创建 webapp/WEB-INF/jsp 目录用来存放我们的jsp页面helloJsp.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    helloJsp
    <hr>
    ${hello}
   
</body>
</html>

 

 

 

(6)编写启动类

编写App.java启动类:

package com.kfit.jsp;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.web.SpringBootServletInitializer;
 
@SpringBootApplication
public class App extends SpringBootServletInitializer {
//    @Override
//    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
//           return application.sources(App.class);
//    }
      
       public static void main(String[] args) {
              SpringApplication.run(App.class, args);
       }
}

 

 

右键Run As  Java Application访问:http://127.0.0.1:8080/helloJsp 可以访问到:

helloJsp


Hello Angel From application

 

特别说明:针对el表达式,类似${hello}这个对于servlet的版本是有限制的,2.4版本版本以下是不支持的,是无法进行识别的,请注意。

 

 Spring Boot 系列博客】

视频&交流平台

à Spring Boot网易云课堂视频

http://study.163.com/course/introduction.htm?courseId=1004329008

à Spring Boot交流平台

http://412887952-qq-com.iteye.com/blog/2321532

 

网易云课堂视频最新更新

第十一章 Spring Boot 日志

1、spring boot日志—理论

2、Spring Boot日志-logback

3、Spring Boot日志-log4j2

第十二章 Spring Boot 知识点2

1、spring boot 服务配置和部署

2、Spring Boot 定制URL匹配规则

 

 

历史章节

 

第一章 快速开始

1、Spring Boot之Hello World

2、Spring Boot之Hello World访问404

 

第二章 Spring Boot之JSON

1、spring boot返回json数据

2、Spring Boot完美使用FastJson解析JSON数据

 

第三章 Spring Boot热部署

1、Spring Boot热部署(springloader)

2、springboot + devtools(热部署)

 

第四章 Spring Boot数据库

1、Spring Boot JPA/Hibernate/Spring Data概念

2、Spring Boot JPA-Hibernate

3、Spring Boot Spring Data JPA介绍

4、Spring Boot JdbcTemplate

5、Spring Boot集成MyBatis

 

第五章 web开发

1、全局异常捕捉

2、配置server信息

3、spring boot使用thymeleaf

4、Spring Boot 使用freemarker

5、Spring Boot添加JSP支持

 

第六章 定时任务

1、Spring Boot定时任务

2、Spring Boot 定时任务升级篇(动态修改cron参数)

3、Spring Boot 定时任务升级篇(动态添加修改删除定时任务)

4、Spring Boot 定时任务升级篇(集群/分布式下的定时任务说明)

5、Spring Boot Quartz介绍

6、Spring Boot Quartz在Java Project中使用

7、Spring Boot 集成Quartz普通使用

8、Spring Boot 集成Quartz升级版

9、Spring Boot 集成Quartz二次升级版

10、Spring Boot 集成Quartz-Job如何自动注入Spring容器托管的对象

 

第七章 Spring Boot MyBatis升级篇

1、Spring Boot MyBatis升级篇-注解

2、Spring Boot MyBatis升级篇-注解-自增ID

3、Spring Boot MyBatis升级篇-注解-增删改查

4、Spring Boot MyBatis升级篇-注解-分页查询

5、Spring Boot MyBatis升级篇-注解-分页PageHelper不生效

6、Spring Boot MyBatis升级篇-注解- mybatic insert异常:BindingException: Parameter 'name' not found

7、Spring Boot MyBatis升级篇-注解- #和$符号特别篇

8、Spring Boot MyBatis升级篇-注解-@Result

9、Spring Boot MyBatis升级篇-注解-动态SQL(if test)-方案一:<script>

10、Spring Boot MyBatis升级篇-注解-动态SQL(if test)-方案二:@Provider

11、Spring Boot MyBatis升级篇-注解-动态SQL-参数问题

12、Spring Boot MyBatis升级篇-注解-特别篇:@MapperScan和@Mapper

13、Spring Boot MyBatis升级篇-XML

14、Spring Boot MyBatis升级篇-XML-自增ID

15、Spring Boot MyBatis升级篇-XML-增删改查

16、Spring Boot MyBatis升级篇-XML-分页查询

17、Spring Boot MyBatis升级篇-XML-分页PageHelper不生效

18、Spring Boot MyBatis升级篇-XML-动态SQL(if test)

19、Spring Boot MyBatis升级篇-XML-注解-初尝试

20、Spring Boot MyBatis升级篇- pagehelper替换为pagehelper-spring-boot-starter

 

第八章 Spring Boot 知识点1

1、Spring Boot 拦截器HandlerInterceptor

2、Spring Boot启动加载数据CommandLineRunner

3、Spring Boot环境变量读取和属性对象的绑定

4、Spring Boot使用自定义的properties

5、Spring Boot使用自定义的properties

6、Spring Boot使用@SpringBootApplication

7、Spring Boot 监控和管理生产环境

 

第十章 Spring Boot 打包部署

1、Spring Boot打包部署((提供Linux的sh文件))

 

第十一章 Spring Boot 日志

1、spring boot日志—理论

2、Spring Boot日志-logback

3、Spring Boot日志-log4j2

更多查看博客: http://412887952-qq-com.iteye.com/

分享到:
评论
13 楼 fengrobert 2017-02-24  
董洪臣 写道
xiao_yixin 写道
你好, 我按照你上述的方式搭建,项目是通过run as Application main方式运行,没有报错。 但是,查找页面总是404的错误, 是怎么回事?


1:你的jsp命名是否和return的一致
2:你的目录映射是否一致



完全复制的上面的代码,直接启动APP类,找不到也是404,但是将这个项目部署到tomcat7.0之后,再访问就好用了,不知道为什么直接启动APP类,报错404,跟一楼一个问题啊,有大神帮忙看看吗
12 楼 董洪臣 2017-01-04  
xiao_yixin 写道
你好, 我按照你上述的方式搭建,项目是通过run as Application main方式运行,没有报错。 但是,查找页面总是404的错误, 是怎么回事?


1:你的jsp命名是否和return的一致
2:你的目录映射是否一致
11 楼 董洪臣 2017-01-04  
如果直接启动不了,把pom.xml里面的<scope>provided</scope> 去掉
10 楼 xiao_yixin 2016-11-29  
你好, 我按照你上述的方式搭建,项目是通过run as Application main方式运行,没有报错。 但是,查找页面总是404的错误, 是怎么回事?
9 楼 林祥纤 2016-10-23  
xierui 写道
不错,谢谢分享


8 楼 xierui 2016-10-21  
不错,谢谢分享
7 楼 林祥纤 2016-09-21  
z736732419 写道
额,貌似是我编辑器的问题
我导入到eclipse中运行成功了!!!


嗯,ok.
6 楼 z736732419 2016-09-20  
额,貌似是我编辑器的问题
我导入到eclipse中运行成功了!!!
5 楼 z736732419 2016-09-20  
纤哥,我在启动项目时遇到一个问题
项目直接通过run as Application main方式运行会报错(下载你的源码运行也是如此)
但是通过maven打包或者直接mvn spring-boot:run就没有问题
不知道是什么原因,还望解惑
4 楼 林祥纤 2016-08-03  
flameday 写道

3 楼 flameday 2016-08-03  
2 楼 林祥纤 2016-06-21  
a807966224 写道
66666

6666666
1 楼 a807966224 2016-06-21  
66666

相关推荐

    从零开始学Spring Boot

    1.22 Spring Boot 添加JSP支持 1.23 Spring Boot Servlet 1.24 Spring Boot过滤器、监听器 1.25 Spring Boot 拦截器HandlerInterceptor 1.26 Spring Boot启动加载数据CommandLineRunner 1.27 Spring Boot环境变量...

    干净可用spring-boot的项目

    这大大节省了开发者从零开始构建新项目的时间,提高了开发效率。 下面我们将深入探讨Spring Boot的核心特性和主要知识点: 1. **起步依赖(Starter Dependencies)**:Spring Boot通过“起步依赖”管理依赖关系,...

    Springboot从入门到实战-02-整合JSP

    本节课程将引导读者从零开始学习Spring Boot,从创建项目到整合JSP,逐步深入学习Spring Boot的各方面知识。 描述解释 虾米大王教你学编程是一系列教程,旨在指导读者学习Java编程语言和相关技术栈,包括Spring ...

    spring-framework-learning:Spring Framework从零开始学习

    Spring Framework从零开始学习 您将学习最受欢迎的Java框架,以使用Spring框架构建动态而强大的Web应用程序。 在本课程中,您将深入了解Spring Framework。 您还将了解Spring框架功能,例如Spring Boot,Spring容器...

    从零开始学java web

    本教程“从零开始学Java Web”旨在帮助初学者系统地掌握这一领域的基础知识,从第一章到第十七章,内容全面且详细。下面我们将逐一探讨这些章节可能涵盖的关键知识点。 第一章:Java Web入门 这一章通常会介绍Java ...

    《从零开始学JAVA》配套PPT

    《从零开始学JAVA》是一本面向初学者的优秀教程,配套的PPT旨在通过清晰易懂的方式,帮助读者逐步掌握Java编程语言的核心概念和技术。这21章的内容覆盖了从基础到进阶的全面知识体系,对于想要系统学习Java的你来说...

    jsp学习视频

    【JSP学习视频】资源包含了全面的JSP(JavaServer Pages)学习教程,旨在帮助初学者从零开始,逐步掌握这一强大的服务器端脚本技术。JSP是Java平台上的一个核心组件,它允许开发者创建动态网页,将业务逻辑与表现层...

    spring入门视频

    2. **创建Spring Boot项目**:讲解如何使用Spring Initializr创建一个新的Spring Boot项目,选择所需的依赖,如Spring Web,以支持Web应用开发。 3. **注解驱动的开发**:介绍Spring中的关键注解,如`@SpringBoot...

    Spring的第一个案例

    在"Spring的第一个案例"中,我们将学习如何从零开始创建一个Spring项目。首先,我们需要一个合适的开发环境,如IDEA或Eclipse,以及Spring Initializr来生成初始的项目结构。接着,我们将添加必要的依赖,如Spring ...

    Spring新手教程3件套.rar

    总的来说,这份Spring新手教程3件套将帮助你从零开始,逐步掌握Spring框架的各个方面,无论是基本的依赖注入,还是进阶的Web开发和分布式系统支持,都将为你提供坚实的理论基础和实践经验。通过系统学习并实践这些...

    图书管理系统从零开始搭建javaweb项目

    【标题】:“图书管理系统从零开始搭建javaweb项目” 【描述】:“图书管理系统包括用户管理、图书管理、购物车等功能,适合入门javaweb初学者” 【知识点详解】: 1. **JavaWeb基础**:JavaWeb是Java技术在Web...

    SpringCloud 29 道面试题和答案.docx

    实现Spring Boot的安全性,可以使用`spring-boot-starter-security`模块,添加相应的依赖,并创建一个配置类继承`WebSecurityConfigurerAdapter`,重写其方法以定义访问控制规则。例如: ```java @Configuration ...

    java spring框架学习资料 pdf

    《Java Spring框架学习指南》是一份详尽的教育资源,旨在帮助开发者从零基础开始逐步掌握Spring框架,并深入理解其核心概念和技术。这份PDF文档全面覆盖了Spring框架的基础知识,包括IoC(Inversion of Control)...

    架构探险 从零开始写javaweb框架Pdf及书上源码

    《架构探险:从零开始写JavaWeb框架》是一本深入探讨JavaWeb开发的书籍,旨在帮助读者理解并构建自己的JavaWeb框架。这本书的PDF版本以及配套的源码提供了丰富的学习资源,让读者能够亲手实践书中的理论知识。下面将...

    零基础学Java.Web开发源代码

    "零基础学Java Web开发"这个资源包含了JSP(JavaServer Pages)、Servlet、Struts、Spring和Hibernate等核心技术的学习材料,这些都是构建企业级Web应用不可或缺的部分。 首先,JSP是Java平台上的服务器端脚本语言...

    SpringBootNewbie:我从零开始的学习之路

    本篇文章将详细探讨Spring Boot的基础知识,以及如何从零开始学习这一强大的工具。 首先,Spring Boot是Spring框架的扩展,旨在简化Spring应用程序的初始设置和配置。它内置了一个Tomcat服务器,支持“开箱即用”的...

    Macbook中使用IDEA开发Spring+SpringMVC+Mybatis+Tomcat+MySQL项目新手必看

    以下是一份详细的步骤指南,帮助你从零开始构建这样的项目。 1. **环境配置**: - **Java环境**:首先确保安装了Java JDK,并设置好`JAVA_HOME`环境变量。 - **IDEA**:下载并安装IntelliJ IDEA社区版或专业版,...

    【从零开始的Javaee课设】影院系统源码

    【从零开始的Javaee课设】影院系统源码是一个基于JavaEE技术栈的项目实践,旨在帮助初学者理解并掌握Java企业级开发的核心技术。这个项目采用了Spring、Spring MVC和MyBatis(SSM)作为主要框架,构建了一个完整的...

Global site tag (gtag.js) - Google Analytics