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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在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

参考技术A

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

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方式的跳转来访问的。

参考技术B 访问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" />
参考技术C 您好,放在web-inf下面的文件属于安全的,因此禁止前台直接方法下面的页面,如需要访问,需要通过后端实现,比如servlet的重定向,转发,或者Struts框架的action等等进行访问。 参考技术D javaweb为了安全,禁止前台访问javaweb配置文件夹WEB-INF

请问servlet路径怎么设置?

我做了网站的相关现成的jsp文件和mysql数据库文件,数据库文件已经导入,但是没有用myeclip编译,我直接放到root目录下,可是访问相关网页总提示“请求的资源[/LoginCheckServlet]不可用”,可是相关servlet文件下载在root目录下的web-inf目录下了,请问还要做什么设置?servlet文件应该放到root目录的哪个目录下?谢谢。

参考技术A 路径设置需要在WEB-INF下的web.xml文件中写配置路径,语法如下。
<servlet>

<servlet-name>任意名称a</servlet-name>

<servlet-class>目标路径</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>上面的任意名称a</servlet-name>

<url-pattern>虚拟路径,访问路径</url-pattern>

</servlet-mapping>
或者在3.0及以上版本可以使用@WebServlet注解来进行配置。
手动配置项目需要注意的是目标文件不能说java文件,需要是class文件。(具体的可以去找一个项目(.war文件)把它改成.rarw文件后解压看看里面的文件结构和内容)
tomcat的访问原理是客户端访问请求文件,服务器端通过配置文件进行查找目标文件,所以如果没有进行配置文件设置那么就无法找到目标文件。追问

已有的servlet的java文件放在哪个目录下?此java文件没有经myeclips编译,但是有现成的此java文件对应的class文件,class文件应该放在哪个目录下?谢谢。

追答

WEB-INF下的class文件夹内

追问

我的class文件夹路径如下,g:\\tomcat-7.0.109\\apache-tomcat-7.0.109\\webapps\\ROOT\\WEB-INF\\classes\\,classes目录下有servlet等文件夹,如图,要用的servlet就是图中的logincheckservlet,则<servlet-class>目标路径</servlet-class>路径怎么写?可以说说吗?谢谢。

追答


任意名称a
ervlet.LoginCheckServlet

任意名称a
/访问路径

前提是你这个servlet是项目包,不是文件夹。

本回答被提问者采纳

以上是关于在java中怎么访问web-inf 目录下的jsp页面。的主要内容,如果未能解决你的问题,请参考以下文章

web-inf下的jsp怎么访问

怎么访问web-inf目录下的文件

普通java类文件如何访问WEB-INF目录下的文件,不是Servlet、JSP类文件

frame 标记 引用一个jsp文件应该怎么写??

关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件

eclipse WEB-INF下文件夹中的jsp文件无法运行