【问题标题】:Attaching a CSS file to a Java Servlet in Tomcat [duplicate]将 CSS 文件附加到 Tomcat 中的 Java Servlet [重复]
【发布时间】:2014-07-01 10:12:38
【问题描述】:

在各种论坛等上进行了大量环顾后,我无法找到我的问题的答案。

我想将样式表附加到我的 servlet,而不必使用 <style> 标签。

我在 Eclipse 中使用 Apache Tomcat 7,并且我正在手动编写 html 代码(通过 PrintWriter)。

我尝试将.css 文件放在WebApp 的根目录中。我试过把它放在css中。没有任何工作。

有人能指出正确的方向吗?

这是我尝试过的一些代码。

尝试1(css在文件夹中。WebContent/css:

    String cssLocation = request.getContextPath() + "/WebContent/css/styles2.css";
    String cssTag = "<link rel='stylesheet' type='text/css' href='" + cssLocation + "'>";

尝试2(css在ROOT中):

    String cssLocation = request.getContextPath() + "/styles2.css";
    String cssTag = "<link rel='stylesheet' type='text/css' href='" + cssLocation + "'>";

这些都不起作用。

编辑:这是我的目录结构:

PROJECT ROOT
    src
        testPackage
            DownloadServlet.java
    WebContent
        css
            styles2.css
        files
        fonts
        js
        META-INF
        WEB-INF
        index.html

解释一下:我试图在DownloadServlet.java 中引用/WebContent/css/styles2.css

我是如何做到的:

在“doGet”方法中,我正在初始化一个“PrintWriter”。我正在打印:

<html>
<head>
   HERE IS WHERE THE LINK NEEDS TO GO
</head>
<body>
...
</body>
</html>

文本“这里是链接需要去的地方”在哪里,这就是我需要指向 css 文件的链接的地方。我已经尝试了上面的方法,但我没有运气。

【问题讨论】:

  • 为什么不写一个 JSP 文件并使用 &lt;link&gt; 包含 CSS 文件呢?
  • 一些上下文可能很好。这真的不是很多。据我所知,这两个都应该工作。当您在浏览器中访问页面时,我们能否获得更多代码或页面源代码?
  • 这是一个简单的问题,即找出与您的 serlvet 相关的正确路径。我们不能这样做,因为您没有告诉我们您的文件夹结构或 servlet 映射。
  • 我对帖子进行了编辑。希望这更清楚。 @KamikazeScottsman

标签: java html css tomcat servlets


【解决方案1】:

只是猜测:试试String cssTag = "&lt;link rel='stylesheet' type='text/css' href='/css/styles.css'&gt;"; 浏览器将在服务器根目录的子文件夹中查找 css 文件,在您的情况下为 WebContent-directory。在 HTML 标签内链接资源时,通常不需要调用 request.getContextPath()。

【讨论】:

  • 但是如何在 Servlet 类中包含 cssTag 字符串。
【解决方案2】:

首先创建 css 文件,假设您项目的 WebContent 目录中的文件夹名称为 css 中的 style.css

那么,你必须知道.css文件所在的tomcat server路径。

String cssTag="<link rel='stylesheet' type='text/css' href='css/style.css'>"
    PrintWriter out = res.getWriter();
    out.println("<html>");
    out.println("<head><title>Title Name</title>"+cssTag+"</head>");
    out.println("<body>");
           /*

           Your  code 
           */
    out.println("</body></html>")

【讨论】:

    猜你喜欢
    • 2012-03-07
    • 1970-01-01
    • 2017-03-07
    • 2011-08-06
    • 1970-01-01
    • 2012-03-07
    • 2021-05-11
    • 2010-12-30
    • 2017-01-28
    相关资源
    最近更新 更多