Java 包括一个具有自己CSS的JSP文件

Java 包括一个具有自己CSS的JSP文件,java,css,jsp,model-view-controller,jersey,Java,Css,Jsp,Model View Controller,Jersey,我有一个简单的JSP文件,它应该显示一个横幅/标题和一行文本。 由于横幅将在整个网站上复制,我更愿意将其与其CSS属性分开,因此我做了以下工作: index.jsp <body> <jsp:include page="header.jsp" /> <p>The service is running and accessible <a href="/rest">here</a></p> <div&

我有一个简单的JSP文件,它应该显示一个横幅/标题和一行文本。 由于横幅将在整个网站上复制,我更愿意将其与其CSS属性分开,因此我做了以下工作:

index.jsp

<body>
    <jsp:include page="header.jsp" />
    <p>The service is running and accessible <a href="/rest">here</a></p>
    <div></div>
</body>
<head>
    <link href="style/header.css" rel="stylesheet" type="text/css">
</head>
<body>
    <div id="container">
        <div id="banner_container" class="center">
            <h1 id="title">Title</h1>
        </div>
        <div id="menu_container" class = "center">
            <div id="menu_content">
                <ul>
                    <li><a>Home</a></li>
                </ul>
            </div>
        </div>
    </div>
</body>
<head>
    <titleTitle</title>
    <link href="style/header.css" rel="stylesheet" type="text/css">
</head>
<body>
    <head>
        <link href="style/header.css" rel="stylesheet" type="text/css">
    </head>
<body>
    <div id="container">
        <div id="banner_container" class="center">
            <h1 id="title">Title</h1>
        </div>
        <div id="menu_container" class = "center">
            <div id="menu_content">
                <ul>
                    <li><a>Home</a></li>
                </ul>
            </div>
        </div>
    </div>
</body>
    <p>The service is running and accessible <a href="/rest">here</a></p>
    <div></div>
</body>
当我在浏览器中加载该端点时,我得到的只是index.jsp,没有横幅或任何css样式(见下文)。我错过了什么

为index.jsp输出HTML

<body>
    <jsp:include page="header.jsp" />
    <p>The service is running and accessible <a href="/rest">here</a></p>
    <div></div>
</body>
<head>
    <link href="style/header.css" rel="stylesheet" type="text/css">
</head>
<body>
    <div id="container">
        <div id="banner_container" class="center">
            <h1 id="title">Title</h1>
        </div>
        <div id="menu_container" class = "center">
            <div id="menu_content">
                <ul>
                    <li><a>Home</a></li>
                </ul>
            </div>
        </div>
    </div>
</body>
<head>
    <titleTitle</title>
    <link href="style/header.css" rel="stylesheet" type="text/css">
</head>
<body>
    <head>
        <link href="style/header.css" rel="stylesheet" type="text/css">
    </head>
<body>
    <div id="container">
        <div id="banner_container" class="center">
            <h1 id="title">Title</h1>
        </div>
        <div id="menu_container" class = "center">
            <div id="menu_content">
                <ul>
                    <li><a>Home</a></li>
                </ul>
            </div>
        </div>
    </div>
</body>
    <p>The service is running and accessible <a href="/rest">here</a></p>
    <div></div>
</body>


试试看:
。这就是我使用的,它将所有的CSS和所有东西都拉进去,输出的HTML是什么样子的?当然这是无效的,因为include的头和体都在index.jsp输出的body标记中?@AlanHay如果你是对的,那么输出的HTML都是错误的。如何使用两个JSP修复此问题?我用输出htmlMy更新了这个问题,我猜Jersey servlet与提供静态内容的默认servlet冲突。查看上一篇文章,您看到Jersey servlet的servlet映射为
/*
。这是用于默认servlet的映射。呈现页面后,浏览器将在看到
后再次请求css页面。当它试图访问css页面时,将遇到Jersey servlet而不是默认servlet。我相信如果你使用Firefox的Firebug这样的工具,你会看到另一个css页面的请求,并且。。。。。。未找到报告。如果是这种情况,我想解决方案是对Jersey servlet使用不同的映射,比如
/rest/*
,而不是
/*