jsp、css、html等静态资源打入jar包,被其他项目引用后访问
一、背景
常见的Web项目经常需要引用独立模块的功能,但不用关心独立模块的功能如何实现,也不用在本项目下添加多余的配置信息。依据模块和可插拔思想,将jsp和class文件统一打入jar包,其他WEB项目只需引入jar包即可使用功能。
二、解决办法
-
Maven打jar包时,并将依赖项一起打入
ref: java/Maven/1.package时将依赖打入jar包
-
Servlet3.0 协议规范中指出: ${jar}/META-INF/resources/被视为根目录。将jsp等静态资源放入META-INF/resources/ 目录下就同实际项目的 webapp 目录没有区别。在jar打包完成后,在 META-INF文件夹中自己创建resources目录(maven打包并不会自动创建),并将jsp文件放入此目录:
-
直接放入resources目录: 可以直接根据jsp的路径,通过url访问jsp文件
-
放到resources/WEB-INF/目录下: 只能通过servlet进行跳转,访问路径同servlet的注册路径
request.getRequestDispatcher("/WEB-INF/jsp/datasourcelist2.jsp").forward(request, response);
-