<%@page language=“java”contentType=“text/html;charset=ISO-8859-1” pageEncoding=“ISO-8859-1”%> <%@taglib前缀=“c”uri=“ http://java.sun.com/jsp/jstl/core " %> <! DOCTYPE html PUBLIC“-//W3C//DTD html 4.01过渡//EN”“” http://www.w3.org/TR/html4/loose.dtd "> <html> <头部> <meta http-equiv=“Content-Type”Content=“text/html;charset=ISO-8859-1”> <title>现已加入 <link href=“globalCSS.css”rel=“stylesheet”type=“text/css”/> </头> <body> <div>这在顶部 <c:import url=“header.jsp”/> <c:import url=“navigationBar.jsp”/> <c:import url=“leftpane.jsp”/> <c:import url=“mainContent.jsp”/> <c:import url=“rightpane.jsp”/> <c:import url=“footer.jsp”/> </body> </html>
-
用于加载CSS文件的URL显然不正确。 发布HTML代码并告诉我们用于显示HTML页面的URL。 – JB尼泽特 评论 2013年1月27日15:44 -
在工作区项目中,所有这些的路径是什么? – nitind公司 评论 2013年1月28日3:01 -
1 css与访问它的jsp页面位于同一文件夹中,即WEB-CONTENTS。 所以我不认为这条路是问题所在。 – 维沙尔·阿南德 评论 2013年1月28日9:53 -
密切相关: stackoverflow.com/q/3655316 – 巴鲁斯C 评论 2018年4月18日6:17
2个答案
http://[host]:[port][request-path]? [查询字符串]
上下文路径 :正斜杠(/)与 上下文 根 servlet的web应用程序。 例子: http://主机 [:port]/context-root[/url模式] Servlet路径 :与组件对应的路径部分 激活此请求的别名。 此路径以前进开始 斜线(/)。 路径信息 :请求路径中不属于 上下文路径或servlet路径。
解决
1) 使用 <c:url>
JSTL中的标记
<link type=“text/css”rel=“stylesheet”href=“<c:url value=”/globalCSS.css“/>”/>
7.5<c:url> 使用适当的重写规则构建URL。 ... URL必须是绝对URL 从方案开始(例如“http://server/context/page.jsp”)或 JSP.2.2.1“相对URL”中JSP 1.2定义的相对URL 规范”。因此,实现必须 预先发送 以斜杠开头的URL的上下文路径 (例如“/page2.jsp”)所以 客户端浏览器可以正确解释这些URL。
2) 使用JSP表达式语言和隐式对象
<link type=“text/css”rel=“stylesheet”href=“${pageContext.request.contextPath}/globalCSS.css”/>
3) 使用 <c:set(设置)>
JSTL中的标记
<c:set var=“root”value=“${pageContext.request.contextPath}”/> ... <link type=“text/css”rel=“stylesheet”href=“${root}/globalCSS.css”/>
4) 使用ServletContextListener
包com.example.listener; 导入javax.servlet。 Servlet上下文; 导入javax.servlet。 ServletContextEvent; 导入javax.servlet。 ServletContextListener; 导入javax.servlet.annotation。 WebListener; @WebListener(网络侦听器) 公共类AppContextListener实现ServletContextListener{ @覆盖 public void contextInitialized(ServletContextEvent事件){ ServletContext sc=event.getServletContex(); sc.setAttribute(“ctx”,sc.getContextPath()); } @覆盖 public void contextDestroyed(ServletContextEvent事件){} }
<link type=“text/css”rel=“stylesheet”href=“${ctx}/globalCSS.css”/>
<? xml version=“1.0”encoding=“UTF-8”?> <web-app xmlns=“ http://java.sun.com/xml/ns/javaee " xmlns:xsi=“ http://www.w3.org/2001/XMLSchema-instance " xsi:schemaLocation=“ http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd " 版本=“2.5”> ... <听众> <listener-class>com.example.listener。 AppContextListener</listener-class> </listener> ... </webapp>
5) 使用Scriptlet
<%=请求.getContextPath()%>
结论
其他想法
<style type=“text/css”> <%@include file=“css/style.css”%> </style> <script type=“text/javascript”> <%@include file=“js/script.js”%> </script>