Boz*_*zho 34
文件输入WEB-INF对用户不可见.这样有点安全.
如果(一个人为的例子)你包括db.jsp,但它本身会引发异常,恶意用户可以打开http://yoursite.com/db.jsp并从异常消息中获得对应用程序(最差 - 数据库凭据)的一些见解.
Sea*_*wen 11
我不认为这是一个好的设计模式,但我相信我可以解释这个推理.
Servlet容器不会提供任何内容WEB-INF.通过将JSP放在那里,可以防止任何人通过名称在浏览器中导航到JSP来直接访问JSP.这可能被认为是一种很好的做法,如果你的一些JSP只是代码/标记的片段,并不打算直接使用,也许会打开一些你没有的安全漏洞.
即使在中,仍然可以让容器按预期查看和使用JSP WEB-INF.
使用Controller(或Front-Servlet)时的额外优点是,您可以将URL路径与项目中JSP文件的物理位置分离.
这里的例子是一个来自Spring 的简单请求映射Controller:
@RequestMapping(value = "/item/edit", method = RequestMethod.GET)
public String getItemEdit(@RequestParam(value = "id", required = false) final String id) {
return "itemeditform";
}
Run Code Online (Sandbox Code Playgroud)
该视图解析器采用URL映射到你的JSP居住的地方照顾.