Java JSP目录结构

Java JSP目录结构,java,jsp,tomcat,servlets,Java,Jsp,Tomcat,Servlets,我已经开始做一些Java和JSP,现在,我被卡住了。我不喜欢将所有静态HTML都放在根文件夹中。如果我把它们放在一个单独的文件夹里。目前,我看到两个选项:在web.xml中配置它,但这只适用于servlet afaik。另一方面,配置Tomcat可能是一个选项,但它会破坏内部逻辑,即使它起作用 是否有一种正确的方法来组织文件,而不将其反映在URL中?您可以使用 <jsp-file></jsp-file> tag 范例 <servlet> <se

我已经开始做一些Java和JSP,现在,我被卡住了。我不喜欢将所有静态HTML都放在根文件夹中。如果我把它们放在一个单独的文件夹里。目前,我看到两个选项:在web.xml中配置它,但这只适用于servlet afaik。另一方面,配置Tomcat可能是一个选项,但它会破坏内部逻辑,即使它起作用


是否有一种正确的方法来组织文件,而不将其反映在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>

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

您可以将它们放在任何子文件夹下,比如jsp/static/subcent内,或者根据您的文件类型,您可以进一步对它们进行分组

现在介绍一下用法,因为您使用的是纯jsp和servlet,所以我认为对静态内容有意义的唯一选项是在需要时使用include指令包含它们,如:

 <%@include file="/pages/static/abc.html" %>
或者将请求转发给他们

<jsp:forward page="/pages/static/staticdata.html" />
理解到这是一种痛苦,如果需要更改导航,您将不得不更改代码,那么更高级的web框架(如Struts、JSF、e.t.c)是有意义的,因为导航规则可以在不更改代码的情况下非常容易地更改,除非流导致模型更改或任何不同的场景


除了导航规则之外,这些框架还指定了页面构建配置,如Struts中的tiles、JSF e.t.c中的模板!我知道,但这些东西还是放进了班级文件夹下的文件包里。我想知道,如何组织静态,主要是html文件8Hi!我考虑过Spring,但因为这是我的第一个项目,所以我想在没有第一个项目的情况下抓住它。因此,您的意思是:如果我在/staticPages/文件夹中有一个页面somePage.html,那么URL必须更改为mainUrl/staticPages/somePage.html。无法将其配置为读取mainUrl/somePage.html?当您使用include指令包含时,所包含页面的内容将添加到调用方页面,url没有更改,当您再次转发时url没有更改,用户不会看到url有任何更改,只是其他人正在做工作,您的建议是,没有任何静态页面,一切都使用jsp?不,只是在我的回答页面名称中是jsp,如果您只有纯html,代码将很好地工作。如果我得到了它,这是一个将文件声明为jsp的解决方法,尽管是静态html,所以它们可以在web.xml中配置?您希望在哪里看到静态文件?您可以创建子文件夹。。。战争中的所有内容都将根据其上下文路径提供。如果您对此不满意,则需要在web服务器或tomcat上重写规则。正确的方法是提供与战争上下文路径相关的静态文件,因为它们属于战争上下文路径。