关于Java:在每个JSP页面中包含CSS和JS文件

Include css and js file in every jsp page

我在每个JSP文件中都包含了常见的CSS和JS文件。

那么在每一页中包含它们的最佳实践是什么呢?

我以前用过<%@ include file="header.jsp" %>,但我想知道这是否是最好的、干净的方法。


我喜欢为此使用片段,JSP支持这些片段,因此不需要其他依赖项。正如你将看到的,它将带来许多其他的好处。

创建标记(parentpage.tag):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<%@tag description="Base page" pageEncoding="UTF-8" %>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>

<%@attribute name="extra_css" fragment="true" %>
<%@attribute name="footer" fragment="true" %>
<%@attribute name="header" fragment="true" %>

<html>
<head> ....
// insert css that is needed for every page
<jsp:invoke fragment="extra_css"/>
<jsp:invoke fragment="header"/>
<jsp:doBody/>
<jsp:invoke fragment="footer"/>

然后创建从此标记继承的单个页

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %>
<t:parentpage>

    <jsp:attribute name="extra_css">
        // custom css for this page
    </jsp:attribute>
    <jsp:attribute name="footer">
        // footer content
    </jsp:attribute>
    <jsp:body>
       // body content
    </jsp:body>

</t:parentpage>

对!将所有CSS和JS定义放在一个JSP中,然后将该JSP包含在所有页面/JSP中,这是一个不错的选择。

在使用Spring时,我建议您使用tiles https://tiles.apache.org/,这是制作标准布局的更好方法,然后在所有JSP中使用该布局。


在您的web.xml中,您可以在没有任何框架的情况下尝试此操作:

1
2
3
4
5
6
7
8
9
10
11
<jsp-config>
   <jsp-property-group>
     <display-name>Display</display-name>
     <url-pattern>*.jsp</url-pattern>
     <el-ignored>false</el-ignored>
     <scripting-invalid>false</scripting-invalid>
     <is-xml>false</is-xml>
     <include-prelude>/template/header.jsp</include-prelude><!-- header -->
     <include-coda>/template/footer.jsp</include-coda><!-- footer -->
   </jsp-property-group>
 </jsp-config>

在这里看到更多


制作外部的JavaScript和CSS。

在现实世界中使用外部文件通常会生成更快的页面,因为浏览器会缓存javascript和css文件。每次请求HTML文档时,都会下载HTML文档中内联的JavaScript和CSS。这减少了所需的HTTP请求数量,但增加了HTML文档的大小。另一方面,如果javascript和css在浏览器缓存的外部文件中,则HTML文档的大小会减小,而不会增加HTTP请求的数量。

请按照以下链接获取有关此的详细信息:

"https://developer.yahoo.com/performance/rules.html"

"在JSP页面中包含外部Java脚本文件"


最好的解决方案是使用JSP标记文件。它允许使用标记文件封装可重用的内容:Java DOC REF

下面是一个很好的回答:示例:HTTPS://StaskOfFult.COM/A/325726/1140788