首先,对于外部访问来说,web-inf下的文件都是不可见的(即不能通过url获得web-info下的任何文件),所以,直接访问jsp是不可能的。这要从web-info文件夹的作用说起:
WEB-INF的存在以及其下的lib和classes目录的作用都是jsp规定的,主要是系统运行的配置信息和环境,用来存储服务端配置文件信息和在服务端运行的类文件,它下面的东西不允许客户端直接访问的,这是jsp环境的规定。
而我们通常是使用view层框架(如struts)来提供jsp服务,此时,我们可以将jsp文件放到web-info下避免客户直接访问到页面,同时使用struts来进行jsp文件提取,并将编译好的结果发送到客户端。
web-inf下的页面,只能在服务器内部跳转,可以在servlet中通过forwad,struts2或者springmvc直接return相应地址字符串就可以
简单点说吧,不跟你罗嗦一大堆了
其实web-inf的作用就是你不希望别人能访问到的东西放在这个目录(包括子目录下),就实现了代码的安全,不担心你辛苦的劳动就别别人EASY的COPY走了,同样的问题ASP中就没有能解决