Springboot的jar包和war包的区别
SpringBoot默认支持很多模板引擎,但是JSP只能够在War中使用,同时mvc.view.prifix/suffix
必须主动配置给出,另外必须导入JSP的默认渲染servlet:"org.apache.jasper.servlet.JspServlet"
,即添加依赖:
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
- 1
- 2
- 3
- 4
- 5
无论是Jar还是War都能够使用嵌套容器,java -jar
来独立运行
"src/main/webapp/WEB-INF/web.xml"
- jsp不能够在jar中使用
- Udertow容器不支持Jsp
- 自定义的
error.jsp
错误页面并不能够复写默认的error handling view
,如果你想要自定义错误页面,请尝试其他模板引擎Custom error pages
如果你将项目打包成jar,就不要使用src/main/webapp
目录,尽管该目录也是一个公共标准,但是它仅仅在war中有效,因为生成jar的构建工具将会自动把该目录忽略
Do not use the
src/main/webapp
directory if your application is packaged as ajar
. Although this directory is a common standard, it works only with war packaging, and it is silently ignored by most build tools if you generate a jar.
SpringBoot的欢迎页
同时支持静态资源
和模板引擎
,如果项目中不存在" "、"/"
的Handling
,那么将优先查看静态资源位置中是否存在index.html
,否则才会查看index模板
,如果都不存在
将使用默认欢迎页
Spring Boot supports both static and templated welcome pages. It first looks for an index.html file in the configured static content locations. If one is not found, it then looks for an index template. If either is found, it is automatically used as the welcome page of the application.
Spring5.+
中与SpringMVC
担负对等
作用的SpringWebFlux
并不是完全依赖于Servlet API
,所以不能将它打包成war
更不能使用src/main/webapp
目录
Spring
WebFlux
applications do not strictly depend on theServlet API
, so they cannot be deployed as war files and do not use thesrc/main/webapp
directory.
用户能够直接访问src/main/webapp
中的静态资源,但并不能直接访问src/main/resources
中的静态资源,但是Spring提供了ResourceHttpRequestHandler
来配置src/main/resources(classpath)
下指定访问目录
Interceptor
只能够拦截Handling
与src/main/webapp
中的静态资源,对src/main/resources
中的静态资源无效src/main/webapp/WEB-INF
的直接访问权限,但是可以通过程序中forward
、redirect
达到间接
访问的目的,所以war项目中通常会将需要控制权限的资源文件放入到WEB-INF
中上一篇: 简单分析Python中用fork()函数生成的子进程
下一篇: 怎么用CSS3媒体查询