Spring Boot与Jsp

 

Spring Boot与Jsp

 

关于Spring Boot 与Jsp,

尽管本人已经很厌恶Jsp了。但是好多人在用,以后写代码也需要,最近新学了SpringBoot框架,发现其与jsp结合不是太完美,现在把走过的坑说一下。

典型的spring Boot Web项目 加入jsp所需要的maven 依赖

项目结构

 

userController代码

 

在application.properties 中需加入

spring.mvc.view.prefix: /WEB-INF/jsp/
spring.mvc.view.suffix: .jsp

 

然后就在webapp/WEB-INF/jsp/*.jsp页面

 

环境介绍到这

 

补一个知识点

依赖范围(例子举的很实际)

 

依赖范围就是用来控制依赖和三种classpath(编译classpath,测试classpath、运行classpath)的关系,Maven有如下几种依赖范围:

  • compile:编译依赖范围。如果没有指定,就会默认使用该依赖范围。使用此依赖范围的Maven依赖,对于编译、测试、运行三种classpath都有效。典型的例子是spring-code,在编译、测试和运行的时候都需要使用该依赖。
  • test: 测试依赖范围。使用次依赖范围的Maven依赖,只对于测试classpath有效,在编译主代码或者运行项目的使用时将无法使用此依赖。典型的例子是Jnuit,它只有在编译测试代码及运行测试的时候才需要。
  • provided:已提供依赖范围。使用此依赖范围的Maven依赖,对于编译和测试classpath有效,但在运行时候无效。典型的例子是servlet-api,编译和测试项目的时候需要该依赖,但在运行项目的时候,由于容器以及提供,就不需要Maven重复地引入一遍。

 

这里主要是对

<dependency>

<groupId>org.apache.tomcat.embed</groupId>

<artifactId>tomcat-embed-jasper</artifactId>

<scope>provided</scope> 红色部分不同

</dependency>

 

结论:无论如何, spring-boot:run 和 打包成 war 然后运行都是正常,其他都不正常

一、spring-boot:run 启动方法:

1、两下 Shift ,搜索maven

2、选择相应Module

(需注意:address 端口被占用)

二、打成war 启动方法:

1、设置pom.xml里 packaging值为war

2、两下Shift,搜索maven ,跟springboot一样

3、运行package打包

4、复制打成的war java –jar war名字运行就行

 

三、外置tomcat部署方法

1、确保<scope>provided</scope> 没有被注释

2、修改@SpringBootApplication注解的类,继承一个SpringBootServletInitializer,然后实现其configure方法,具体内容为return builder.sources(本类类名.class);(注意,这里不能是this,this是一个类的实例,而xxx.class是类的模板)

3、仿照上面打成war包的方法,打成war包

4、放在tomcat下的webapp目录,可以直接改xxx.war的名字,然后浏览器输入localhost/xxx就行了

<build> <finalName>springBootJsp</finalName></bulid> 也可以以这种方式改名字

 

 

FUCK  弄了半天,发现不注释provided也行

到底原因在哪,Don't Know

 

总结:继承了SpringBootServletInitializer,然后不注解provided,其生成的war包 jar 可以运行,springBoot:run 可以运行,tomcat外置也可以运行,Fuck

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值