【问题标题】:JSP directory structureJSP目录结构
【发布时间】:2011-12-04 09:16:38
【问题描述】:

我一直在做一些 Java 和 JSP,但现在我陷入了困境。我对在根文件夹中包含所有静态 HTML 不满意。如果我将它们打包到一个单独的文件夹中。目前,我看到两个选项:在 web.xml 中配置它,但这仅适用于 servlet afaik。另一方面,配置 Tomcat 可能是一种选择,但它会破坏内部逻辑,即使它有效。

有没有正确的方法来组织文件而不是在 URL 中反映出来?

【问题讨论】:

  • 您想在哪里查看静态文件?您可以创建子文件夹... WAR 中的所有内容都将相对于其上下文路径提供服务。如果您对此不满意,则需要在 Web 服务器(或 tomcat)上重写规则。正确的方法提供相对于WAR的上下文路径的静态文件,因为它们属于它。

标签: java jsp tomcat servlets


【解决方案1】:

当你谈到静态页面时,比如页眉和页脚。

您可以将它们放在 jsp/static/(subcontent) 内的任何子文件夹下,或者根据文件的类型,您可以将它们进一步分组。

现在的用法,因为因为您使用的是普通的 jsp 和 servlet,所以我认为对静态内容有意义的唯一选项是将它们包含在 include 指令所需的任何地方,例如:

 <%@include file="/pages/static/abc.html" %>

或使用

将请求转发给他们
<jsp:forward page="/pages/static/staticdata.html" />

理解这很痛苦,如果需要更改导航,则必须更改代码,然后更高级的 Web 框架(如 Struts、JSF 等)是有意义的,因为无需更改代码即可轻松更改导航规则(除非流程导致模型发生变化或任何不同的情况)。

除了导航规则,这些框架还指定页面构建配置,如 Struts 中的磁贴、JSF 中的模板等

【讨论】:

  • 嗨!我想到了 Spring,但由于这是我的第一个项目,所以我想先掌握一下。因此,您要说的是:如果我在文件夹 /staticPages/ 中有一个页面 somePage.html,则 URL 必须更改为 mainUrl/staticPages/somePage.html。无法将其配置为读取 mainUrl/somePage.html?
  • 当你使用 include 指令包含时,被包含页面的内容被添加到调用者页面,url 没有变化,当你再次转发时 url 没有变化,用户不会看到 url 的任何变化, 只是别人在做这项工作
  • 那么,您的建议是,没有任何静态页面,并且使用 jsp 做所有事情?
  • 不,只是在我的答案页面名称是jsp,如果您只有纯html,代码将可以正常工作
  • 啊,如果我明白了,这是一种将文件声明为JSP(虽然是静态html)的解决方法,所以可以在web.xml中配置它们?
【解决方案2】:

您实际上可以使用

将 jsp 文件映射到 web.xml 中的 url
<jsp-file></jsp-file> tag

例子

<servlet>
    <servlet-name>somName</servlet-name>
    <jsp-file>newFolder/mypage.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>somName</servlet-name>
    <url-pattern>/oldUrl.jsp</url-pattern>
</servlet-mapping>

【讨论】:

  • 嗨!我知道,但无论如何这些都进入了类文件夹下的包中。我想知道,如何组织静态,主要是 html-files 8)
猜你喜欢
  • 1970-01-01
  • 2017-06-24
  • 1970-01-01
  • 2013-07-11
  • 2012-08-24
  • 2013-06-20
  • 2017-11-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多