首先,因为WEB-INF作为安全目录,其目录下的内容是无法直接通过get方式连接的(类似a标签的href,重定向等)
以下是关于一些涉及目录跳转的总结:
外路径访问WEB-INF下的JSP
需要先跳转到servlet,在servlet中使用转发 request.getRequestDispatcher(“path”).forward(request.response)来实现向WEB-INF下的jsp跳转
如:
request.getRequestDispatcher("/WEB-INF/dest.jsp").forward(request, response);
WEB-INF路径下的文件访问外部资源:
这里因为路径的原因,需要获取项目路径追溯资源的位置:
如:
获取项目路径:
<% pageContext.setAttribute("APP_PATH",request.getContextPath()); %>
获取资源:
<img alt="test" src="${APP_PATH }/a.png"><br>
这样能够获取根目录下的a.png图片
或者直接使用
<td background="${pageContext.request.contextPath}/images/bodybg.jpg">
URL传参的问题
测试发现,如果是外路径的资源,通过类似Servlet-Name?param=vallue的方式可以传递出参数,
而WEB-INF下的jsp文件通过这种参数访问Servlet参数会丢失。