springboot+jsp jar包 上传云服务器

1、springboot整合jsp

最近做的一个项目,由于种种原因使用了springboot+jsp。相信许多人也清楚,springboot官方推荐的模板引擎是thymleaf,并不太支持jsp。

springboot要整合jsp的话,需要添加以下依赖:

另外,如果需要用到jstl的话,则需要添加以下依赖:

而且jsp文件必须放在WEB-INF目录下,否则无法编译成class文件(毕竟jsp本质是servlet)所以要在application.yml添加如下配置

jsp中如果需要引用静态资源的话,则可以放在resource/static文件夹下,在jsp中引用的路径直接写“/xxx/xxx.css” ,因为springboot默认的静态资源路径中有resource/static,放在这里不会被拦截


2、使用maven打jar包

我在使用maven将springboot打成jar包时,发现在WEB-INF下的jsp文件不会被放进jar包中。当然,这是正常的,因为是打jar包,不是打war包,当然不会包含WEB-INF目录的东西。

所以需要添加配置,在pom.xml文件中的build标签下添加如下内容,在打包过程中需要将webapp目录(WEB-INF在webapp下)放入jar包中的META-INF/resource目录下。

另外,还需要将springboot的maven插件版本修改为1.4.2.RELEASE,具体如下图,只有使用这个版本打jar包才能解析jsp,这是springboot的bug吧

然后使用maven工具进行打包即可


 

3、部署到云服务器

 首先需要将服务器对应的端口号放行,比如我使用的tomcat端口号是8066,以阿里云服务器为例,进入控制台,选择安全组,点击“配置规则”,再点击“添加安全组规则”,在弹窗中填写具体信息,具体如下图:

 

如果使用shell工具则需要输入以下命令,第一个是开放8066端口,第二个是保存规则

iptables -A INPUT -ptcp --dport  8066 -j ACCEPT
/etc/rc.d/init.d/iptables save

 然后使用shell工具进入到jar包的上传目录,输入以下命令:

java -jar xxx.jar 

使用上述方式的话,在shell工具时就会关闭整个程序,因此需要使用以下命令将程序常驻服务器

nohup java -jar xxx.jar &

 nohup的意思不挂服务,常驻的意思,除非云服务器重启,否则程序会一直运行;最后的&表示执行命令后会生成日志文件nohup.out

 然后就可以通过云服务器的公网ip+端口号+Controller路径,就可以访问项目了。

 

posted @ 2018-08-16 00:44  life丶  阅读(4172)  评论(1编辑  收藏  举报