【spring boot】5.spring boot 创建web项目并使用jsp作前台页面
2017-10-23 01:01
951 查看
贼烦的是,使用spring boot 创建web项目,然后我再idea下创建的,but 仅仅启动spring boot的启动类,就算整个项目都是好着的,就算是能够进入controller中,也不能成功访问到jsp页面。很尴尬!也很无语!
好吧,开头一句抱怨,下面全靠编~~~
=======================================================================================================
1.idea下spring boot创建web项目
View Code
上面这三个是spring boot项目创建使用jsp页面的web项目必须的三个依赖
这里介绍下maven中scope依赖范围的概念,因为后续涉及到这个会有问题。
依赖范围就是用来控制依赖和三种classpath(编译classpath,测试classpath、运行classpath)的关系,Maven有如下几种依赖范围:
compile:编译依赖范围。如果没有指定,就会默认使用该依赖范围。使用此依赖范围的Maven依赖,对于编译、测试、运行三种classpath都有效。典型的例子是spring-code,在编译、测试和运行的时候都需要使用该依赖。
test: 测试依赖范围。使用次依赖范围的Maven依赖,只对于测试classpath有效,在编译主代码或者运行项目的使用时将无法使用此依赖。典型的例子是Jnuit,它只有在编译测试代码及运行测试的时候才需要。
provided:已提供依赖范围。使用此依赖范围的Maven依赖,对于编译和测试classpath有效,但在运行时候无效。典型的例子是servlet-api,编译和测试项目的时候需要该依赖,但在运行项目的时候,由于容器以及提供,就不需要Maven重复地引入一遍。
3.创建webapp目录,并创建jsp页面在目录下
注意创建的目录层级关系
如果再创建jsp页面的时候,不能右键直接创建的话,可以http://www.cnblogs.com/sxdcgaq8080/p/7676294.html
![](https://images2017.cnblogs.com/blog/978388/201710/978388-20171023003316271-1634703245.png)
![](https://images2017.cnblogs.com/blog/978388/201710/978388-20171023003347177-141759065.png)
4.application.properties配置文件的完善
注意前缀 的值是 /WEB-INF/views/ 而不是 /WEB-INF/views
少一个/ 整个访问的路径就是不完整的。
![](https://images2017.cnblogs.com/blog/978388/201710/978388-20171023003556865-1802568097.png)
因为webapp在刚刚上面创建jsp页面的时候,已经被指定为classpath了,也就是根路径了。
![](https://images2017.cnblogs.com/blog/978388/201710/978388-20171023004042802-246979471.png)
所以现在,这里配置了mvc的【view】视图层前缀后缀,指定controller中寻找页面就去/WEB-INF/views/ 下面去找.jsp文件了。
5.写一个跳转页面的controller层
![](https://images2017.cnblogs.com/blog/978388/201710/978388-20171023004411146-1973265012.png)
![](https://images2017.cnblogs.com/blog/978388/201710/978388-20171023004535615-944308285.png)
6.所以,最终项目的目录结构是这个样子的
![](https://images2017.cnblogs.com/blog/978388/201710/978388-20171023004653631-342592005.png)
哦哦,这里有一个web目录,是可以删掉的,不过删不删也无所谓,没有多大的关系
7.最后一步,启动并且能访问
这里不是通过启动类去启动,而是需要通过spring-boot:run去启动
![](https://images2017.cnblogs.com/blog/978388/201710/978388-20171023004919193-697714490.png)
右键 run 或者debug都可以
然后 启动起来之后在浏览器访问
![](https://images2017.cnblogs.com/blog/978388/201710/978388-20171023005050021-1730476237.png)
是可以访问到的。
8.还有就是,如果把用于编译jsp的 这个插件的scope注解,也就是使用默认的scope
然后import 整个pom.xml文件之后。
再通过 启动 启动类的方式来启动spring boot项目的话,也是可以访问的到的【我把web目录删掉了】
![](https://images2017.cnblogs.com/blog/978388/201710/978388-20171023005610224-1463064886.png)
通过启动spring-boot:run的方式也可以访问到。
=====================================================================================================
因为确实碰到很多小的点注意不到的地方,导致整个就是访问不到,反正上面该罗列的都罗列出来了。
好吧,开头一句抱怨,下面全靠编~~~
=======================================================================================================
1.idea下spring boot创建web项目
<!--web 支持--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--jsp页面使用jstl标签--> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <!--用于编译jsp--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency>
View Code
上面这三个是spring boot项目创建使用jsp页面的web项目必须的三个依赖
这里介绍下maven中scope依赖范围的概念,因为后续涉及到这个会有问题。
依赖范围就是用来控制依赖和三种classpath(编译classpath,测试classpath、运行classpath)的关系,Maven有如下几种依赖范围:
compile:编译依赖范围。如果没有指定,就会默认使用该依赖范围。使用此依赖范围的Maven依赖,对于编译、测试、运行三种classpath都有效。典型的例子是spring-code,在编译、测试和运行的时候都需要使用该依赖。
test: 测试依赖范围。使用次依赖范围的Maven依赖,只对于测试classpath有效,在编译主代码或者运行项目的使用时将无法使用此依赖。典型的例子是Jnuit,它只有在编译测试代码及运行测试的时候才需要。
provided:已提供依赖范围。使用此依赖范围的Maven依赖,对于编译和测试classpath有效,但在运行时候无效。典型的例子是servlet-api,编译和测试项目的时候需要该依赖,但在运行项目的时候,由于容器以及提供,就不需要Maven重复地引入一遍。
3.创建webapp目录,并创建jsp页面在目录下
注意创建的目录层级关系
如果再创建jsp页面的时候,不能右键直接创建的话,可以http://www.cnblogs.com/sxdcgaq8080/p/7676294.html
![](https://images2017.cnblogs.com/blog/978388/201710/978388-20171023003316271-1634703245.png)
![](https://images2017.cnblogs.com/blog/978388/201710/978388-20171023003347177-141759065.png)
4.application.properties配置文件的完善
注意前缀 的值是 /WEB-INF/views/ 而不是 /WEB-INF/views
少一个/ 整个访问的路径就是不完整的。
spring.mvc.view.prefix = /WEB-INF/views/ spring.mvc.view.suffix = .jsp
![](https://images2017.cnblogs.com/blog/978388/201710/978388-20171023003556865-1802568097.png)
因为webapp在刚刚上面创建jsp页面的时候,已经被指定为classpath了,也就是根路径了。
![](https://images2017.cnblogs.com/blog/978388/201710/978388-20171023004042802-246979471.png)
所以现在,这里配置了mvc的【view】视图层前缀后缀,指定controller中寻找页面就去/WEB-INF/views/ 下面去找.jsp文件了。
5.写一个跳转页面的controller层
![](https://images2017.cnblogs.com/blog/978388/201710/978388-20171023004411146-1973265012.png)
![](https://images2017.cnblogs.com/blog/978388/201710/978388-20171023004535615-944308285.png)
6.所以,最终项目的目录结构是这个样子的
![](https://images2017.cnblogs.com/blog/978388/201710/978388-20171023004653631-342592005.png)
哦哦,这里有一个web目录,是可以删掉的,不过删不删也无所谓,没有多大的关系
7.最后一步,启动并且能访问
这里不是通过启动类去启动,而是需要通过spring-boot:run去启动
![](https://images2017.cnblogs.com/blog/978388/201710/978388-20171023004919193-697714490.png)
右键 run 或者debug都可以
然后 启动起来之后在浏览器访问
![](https://images2017.cnblogs.com/blog/978388/201710/978388-20171023005050021-1730476237.png)
是可以访问到的。
8.还有就是,如果把用于编译jsp的 这个插件的scope注解,也就是使用默认的scope
<!--用于编译jsp--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <!--<scope>provided</scope>--> </dependency>
然后import 整个pom.xml文件之后。
再通过 启动 启动类的方式来启动spring boot项目的话,也是可以访问的到的【我把web目录删掉了】
![](https://images2017.cnblogs.com/blog/978388/201710/978388-20171023005610224-1463064886.png)
通过启动spring-boot:run的方式也可以访问到。
=====================================================================================================
因为确实碰到很多小的点注意不到的地方,导致整个就是访问不到,反正上面该罗列的都罗列出来了。
相关文章推荐
- 使用springboot创建web项目(一),登录页面
- thymeleaf :springboot整合mybatis的web项目中使用html而不是jsp当页面渲染
- 012-Spring Boot web【一】创建、请求、使用jsp、freemarker,tomcat、jetty
- springboot学习1-使用 Spring Starter Project快速创建基于spring-boot的web项目
- spring boot创建web项目:新建jsp文件而找不到jsp文件模版的新建选项
- [Gradle中文教程系列]-跟我学Gradle-8.7.多模块项目之 - spring boot + gradle + 构建公共jsp页面的多模块项目
- 使用Maven创建Web项目,无法识别内置JSP内置对象
- 使用IDEA+GRADLE创建springboot项目
- spring boot 使用velocity、freeMarker模板创建html页面返回给前端
- 使用Spring Boot开发Web项目
- 使用Spring Boot开发Web项目(二)之添加HTTPS支持
- [跟我学Gradle]-多模块项目之 - spring boot + gradle + 构建公共jsp页面的多模块项目
- 标准版eclipse配置J2EE插件,使用maven创建web项目(spring JDBC)
- SpringBoot项目如何访问jsp页面
- eclipse中创建的web项目中的jsp页面报错
- 使用Spring Boot开发WEB页面
- 通过Spring Boot三分钟创建Spring Web项目
- spring boot 使用velocity、freeMarker模板创建html页面返回给前端
- 使用Maven创建Web项目后,jsp引入静态文件提示报错。JSP 报错:javax.servlet.ServletException cannot be resolved to a type