<jsp:include>和<%@include%>的区别
参考地址:https://www.cnblogs.com/dorra/p/7078166.html
大体总结:
对于静态包含,<%@include%>,中包含的文件,只是简单的嵌入到主文件中,就是在jsp页面转化成Servlet时才嵌入到主文件中,因为运行的结果是只生成了一个Servlet。
而对于动态包含<jsp:incude>,如果被包含文件是动态的,那么就会生成两个Servlet,也就是被包含文件也要经过jsp引擎编译执行生成一个Servlet,两个Servlet通过request和reponse进行通信。如果被包含的文件是静态的,那么这种情况和<%@include>就很相似,只生成了一个Servlet,但是他们之间没有进行简单的嵌入,而依然是通过request和reponse进行的通信。
使用该标签的坑
场景描述:
在项目开发过程中,发现某个页面的东西越来越多,css或者是js也越来越多,使用该标签重新将某个功能模块抽出放到单独的一个页面,方便其他地方复用,然后使用上面的标签引入到总的页面,虽然能达到想要的效果,但是问题出现了,在自定义的css文件之后,被后面的单独的这个页面里的引入某个第三方css文件覆盖了属性,导致之前单独配的样式完全乱掉,要么就不用外部引入直接放到一块,要么就在要引入的页面中不要使用第三方的css或js文件。但是对于公共复用的css、js、tag之类的用外部引入还是很方便的。