Ⅰ 在java中怎么访问web-inf 目录下的jsp页面。
外部访问来说,web-inf下的文件都是不可见的(即不能通过url获得web-info下的任何文件),所以,直接访问jsp是不可能的。可以使用view层框架(如struts)来提供jsp服务,将jsp文件放到web-info下避免客户直接访问到页面,同时使用struts来进行jsp文件提取,并将编译好的结果发送到客户端。
WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。
(1)怎么访问webinf下的jsp扩展阅读:
WEB-INF 目录的作用:
/WEB-INF/web.xml
Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
/WEB-INF/classes/
包含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中(是该目录不能包含在.jar文件中)。
/WEB-INF/lib/
存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件。
/WEB-INF/src/
源码目录,按照包名结构放置各个java文件。
/WEB-INF/database.properties
数据库配置文件
/WEB-INF/tags/
存放了自定义标签文件,该目录并不一定为 tags,可以根据自己的喜好和习惯为自己的标签文件库命名,当使用自定义的标签文件库名称时,在使用标签文件时就必须声明正确的标签文件库路径。
例如:当自定义标签文件库名称为 simpleTags 时,在使用 simpleTags 目录下的标签文件时,就必须在 jsp 文件头声明为:<%@ taglibprefix="tags" tagdir="/WEB-INF /simpleTags" % >。
/WEB-INF/jsp/
jsp 1.2 以下版本的文件存放位置。改目录没有特定的声明,同样,可以根据自己的喜好与习惯来命名。此目录主要存放的是 jsp 1.2 以下版本的文件,为区分 jsp 2.0 文件,通常使用 jsp 命名,当然你也可以命名为 jspOldEdition 。
/WEB-INF/jsp2/
与 jsp 文件目录相比,该目录下主要存放 Jsp 2.0 以下版本的文件,当然,它也是可以任意命名的,同样为区别 Jsp 1.2以下版本的文件目录,通常才命名为 jsp2。
META-INF
相当于一个信息包,目录中的文件和目录获得Java 2平台的认可与解释,用来配置应用程序、扩展程序、类加载器和服务
manifest.mf文件,在用jar打包时自动生成。
Ⅱ jsp页面放在web-inf目录下怎么访问
首先,对于外部访问来说,web-inf下的文件都是不可见的(即不能通过url获得web-info下的任何文件),所以,直接访问jsp是不可能的。这要从web-info文件夹的作用说起:
WEB-INF的存在以及其下的lib和classes目录的作用都是jsp规定的,主要是系统运行的配置信息和环境,用来存储服务端配置文件信息和在服务端运行的类文件,它下面的东西不允许客户端直接访问的,这是jsp环境的规定。
而我们通常是使用view层框架(如struts)来提供jsp服务,此时,我们可以将jsp文件放到web-info下避免客户直接访问到页面,同时使用struts来进行jsp文件提取,并将编译好的结果发送到客户端。
Ⅲ 如何直接访问web-inf下的index.jsp
WEB-INF目录下的jsp文件,在浏览器中是不能直接访问的。(没有访问的权限)
如果将jsp文件放入WEB-INF目录下,将不能访问。
比如在jsp页面中直接写
[html] view plain
<span style="font-size:18px;"><a href="/WEB-INF/content/index.jsp"></span>
那么将不能访问。
在struts中必须用action来实现页面的跳转,才能访问WEB-INF里面的jsp文件。
将上面的jsp页面中的链接写为:
[html] view plain
<span style="font-size:18px;"><a href=index.action>
</span>
Ⅳ 关于WEB-INF下的jsp,使用绝对路径如何访问
WEB-INF下的东西是禁止直接访问的。如果这个页面是你的,要想让人访问最好不要放在这个目录下。如果一定放在那里。你可以使用:
request.getRequestDispatcher("/WEB-INF/test.jsp").forward(request,response);
所以你想直接添加一个链接那肯定是没发过去的。你可以先跳到一个jsp,那个jsp里写上上面的代码就可以了。