在java中怎么访问web-inf 目录下的jsp页面。

十万火急……

外部访问来说,web-inf下的文件都是不可见的(即不能通过url获得web-info下的任何文件),所以,直接访问jsp是不可能的。可以使用view层框架(如struts)来提供jsp服务,将jsp文件放到web-info下避免客户直接访问到页面,同时使用struts来进行jsp文件提取,并将编译好的结果发送到客户端。

WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。

扩展资料:

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打包时自动生成。

参考资料:百度百科-web-inf

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2019-09-21

可以通过转发的方式访问。

1、以Controller为例来进行转发,具体代码如下:

2、页面在请求的时候,可以在地址栏输入:

3、请求由上述Controller进行处理,并通过ModelAndView来进行跳转,跳转到compare.jsp页面。当然要用ModelAndView的话需要在Spring的配置文件中配置,视图解析器配置如下:

上述例子中,compare.jsp页面是放在了/WEB-INF/vm目录下,这样当在地址栏输入上述地址后,就可以通过controller跳转到WEB-INF目录下的jsp页面了。

扩展资料:

WEB-INF目录下的JSP页面不能通过地址栏直接访问,WEB-INF目录下的文件不能直接被访问主要是出于安全考虑。

如果把这些JSP页面文件移到WEB-INF 目录下,在调用页面的时候就必须把"WEB-INF"添加到URL中。而实现页面的跳转有两种方式,一种是通过redirect的方式,一种是通过forward的方式。

redirect方式的跳转,系统会在一个新的页面打开要跳转的网页;forward方式跳转,系统会在原来的页面上打开一个要跳转的网页。

所以放到WEB-INF目录下的文件是不允许采用redirect方式的跳转来访问的。

本回答被网友采纳
第2个回答  2018-07-29
访问WEB-INF目录下的jsp的方法:
(1)方式一:
  在main.jsp用
    <a href="oa.do ">访问oa的路径</a>
或者
    <jsp:forward page ="/WEB-INF/jsp/test/test.jsp" />
  访问。
(2)方式二:在action类中或者struts.xml中
  如果main.jsp有很多处链接到WEB-INF目录下的其它页面.那就得有10个转向Action。这个可以用DispatchAction类加参数专门处理转向工作。
     1 request.getRequestDispatcher("/WEB-INF /main.jsp").forward(request, response);
在struts-config文件中配置 
  <forward name="success" path="/WEB-INF/main.jsp" />本回答被网友采纳
第3个回答  2015-06-05
您好,放在web-inf下面的文件属于安全的,因此禁止前台直接方法下面的页面,如需要访问,需要通过后端实现,比如servlet的重定向,转发,或者Struts框架的action等等进行访问。
第4个回答  2013-08-07
javaweb为了安全,禁止前台访问javaweb配置文件夹WEB-INF
相似回答