WEB-INF下的内容是没有办法通过浏览器去请求的。可以把东西放在WEB-INF下面,避免用户直接通过浏览器请求。那些资源只允许通过url请求过来通过其他途径转发给用户。
比如WEB-INF/jsp/login.jsp这个页面,在结合springmvc框架的情况下,可以通过一个控制器来进行转发,
@Controller
@RequestMapping(value="/start")
public class LoginController{
// ...
@RequestMapping(value="/login.html")
public String loginPage(){
return "login";
}
//...
}
为springmvc指定视图解析器(就是springmvc启动的那个servlet的 xx-servlet.xml中设置的)
<!-- xx-servlet.xml -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:viewClass="org.springframework.web.servlet.view.JstlView:
p:prefix="/WEB-INF/jsp/"
p:suffix=".jsp"/>
# 也就是说通过访问http://projectname/start/login.html,这个请求被xx这个servlet拦截后,把请求交给LoginController,匹配到方法loginPage,
# 这个方法返回login,login被视图解析器处理,加上前缀和后缀就变成了/WEB-INF/jsp/login.jsp了,然后就成功的请求到目标页面了。