温馨提示:本文翻译自stackoverflow.com,查看原文请点击:java - Eclipse Dynamic Web Project Link CSS from JSP using Tomcat
css java jsp tomcat

java - 如何使用Tomcat的JSP中的Eclipse动态Web项目链接CSS

发布于 2020-03-29 13:01:05

我在Eclipse中有这个Dynamic Web Project:
项目树截图

我想从home.jsp链接到home.css。

home.jsp的负责人:

<%@ page language="java" contentType="text/html; charset=UTF-8" %>

<!DOCTYPE html>
<html lang="en"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="Infinance Home Webpage">
    <meta name="author" content="Infinance">


    <link rel="icon" href="img/infinance-web-icon_128.png">
    <title>Infinance: Inicio</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

    <link rel="stylesheet" type="text/css" href="css/home.css" />

  <style id="style-1-cropbar-clipper">
.en-markup-crop-options {
    top: 18px !important;
    left: 50% !important;
    margin-left: -100px !important;
    width: 200px !important;
    border: 2px rgba(255,255,255,.38) solid !important;
    border-radius: 4px !important;
}

.en-markup-crop-options div div:first-of-type {
    margin-left: 0px !important;
}
</style></head>

...

我尝试了很多在其他StackOverFlow帖子中找到的解决方案,但唯一可行的解​​决方案是:

<style type="text/css">
  <%@include file="css/style.css" %>
</style>

但我想使其与链接和href一起使用,因为我想提供客户端资源引用,而不是服务器端包含。

当浏览器请求CSS文件时,会发生以下情况: Firefox控制台屏幕截图

我认为发生的事情是,当浏览器请求http:// localhost:8080 / infinance / css / home.css时,Tomcat返回了home.jsp。我不知道为什么

Home.java(servlet)代码:

@WebServlet("/")
public class Home extends HttpServlet {
    private static final long serialVersionUID = 1L;
      private static DatabaseManager db;

    public Home() {
        super();
    }
    public void init() {
        db = new DatabaseManager();
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         ServletContext sc = getServletContext();
         RequestDispatcher rd = sc.getRequestDispatcher("/home.jsp");
         rd.forward(request,response);
        }
}

任何想法?一切都有帮助。谢谢。

查看更多

查看更多

提问者
Iago González Rodríguez
被浏览
69
Iago González Rodríguez 2018-04-13 21:50

我终于解决了。

如果您写:

@WebServlet("/")

在servlet(Home.java)中,如果未在servlet中指定URL,则将home.jsp设置为默认文件。在这种情况下,我在任何Servlet中都没有URL http:// localhost:8080 / infinance / css / home.css,因此它始终重定向到home.jsp网页。

对我有用的解决方案正在改变:

@WebServlet("/")

并改为:

@WebServlet("/home")

这样,仅当您编写http:// localhost:8080 / infinance / home时它才会将您重定向到home.jsp;如果您未指定url,则会收到404错误,但它允许将CSS和img与href。

随意编写其他可行的解决方案。