springboot把web應用打包成jar包,那麼打包時jsp文件應該如何處理呢?
02-10
springboot把web應用打包成jar包,集成了tomcat,實現just run,那麼jsp文件該怎麼處理,需要一起打包在jar中呢?還是存放在單獨的文件夾中?
如果spring boot工程中使用了jsp,是不可以打成jar包的。因為servlet規範中規定jsp必須放在servlet context中。所以spring boot並不推薦使用jsp,而是使用thymeleaf,freemarker等模版引擎。參見http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-jsp-limitations
這篇文章應該能解答你的疑惑:spring boot應用啟動原理分析
另外案例下我關於spring boot的一些文章:Java後端 - 文集jsp也是編譯成servlet的,其實也是java類
是可以的 http://blog.csdn.net/alan666156/article/details/52168450
這種情況下可以把應用打成war包嘛,例子:spring-boot/spring-boot-samples/spring-boot-sample-web-jsp at v1.4.1.RELEASE · spring-projects/spring-boot · GitHub
When running a Spring Boot application that uses an embedded servlet container (and is packaged as an executable archive), there are some limitations in the JSP support.
- With Tomcat it should work if you use war packaging, i.e. an executable war will work, and will also be deployable to a standard container (not limited to, but including Tomcat). An executable jar will not work because of a hard coded file pattern in Tomcat.
- Jetty does not currently work as an embedded container with JSPs.
- Undertow does not support JSPs.
這是原文。
Tomcat支持war的打包方式,spring boot支持war打包方式。Jetty現在不支持嵌入式伺服器。Undertow根本就不支持JSP。所以答案就是打包成war,jsp會自然按照servlet的標準部署。但也就意味著你不可以用嵌入式的方式運行,而是Tomcat Server + war的部署方式。一樣的,放到template或者static裡面,做好映射,然後達成jar包。
springboot會把你的整個項目都打成可運行的jar包,包括jsp等視圖文件以及其他資源文件都是一起打包的啊,不然這邊一個包,那邊一個單獨文件夾,這邊一個配置文件,那邊一個,你不覺的繁瑣麻煩嗎?
推薦閱讀:
※Spring Boot 整合 Redis 實現緩存操作
※Spring 數據訪問(DAO層) 總結
※怎麼閱讀Spring源碼?
※Spring探秘,妙用BeanPostProcessor
TAG:Spring |