我在tomcat中的部署多个应用,这样会导致不同的应用有不同的上下文路径,可以通过request.getContextPath()方法得到。在写jsp页面的时候,为了能够导入js,图片,css等资源文件,我们都在路径前加上request.getContextPath(),用来动态的得到这些资源的绝对路径。但是在使用<%@ include file=""%>标签的时候,类似的加上request.getContextPath(),这里由于不能动态的得到,所以我直接写的应用根目录如:<%@ include file="/hb/common/head.inc"%>,居然报找不到include文件"/hb/common/head.inc。我看了半天,还把上述路径打到浏览器中,都能正常访问,这个让我很不能理解。后来尝试去掉应用的上下文路径,直接为<%@ include file="/common/head.inc"%>,编译成功,原来include标签的路径中是不需要包含上下文路径的,编译时会自动识别。后来想想,由于标签中不能嵌入<%=reqeust.getContextPath()%>的写法,如果要包含上下文路径,只能硬编码,如果遇到应用名称更换的话,要对所有的上述标签做查找替换工作,这样的开发方式肯定是存在问题的。
jsp的标签路径说明
最新推荐文章于 2024-09-14 21:06:55 发布