java - 无法访问JSP中的CSS和JavaScript文件

标签 java jsp servlets model-view-controller

我正在使用 MVC 在 JSP/Servlet 中开发一个应用程序。在此应用程序中,我想加载index.jsp作为欢迎页面,并且该页面从数据库检索数据。我做到了。现在的问题是,当 index.jsp 页面加载时,它会从数据库中获取数据,但它在浏览器上以纯文本形式显示数据,而我的 CSS 不起作用。

我知道在翻译阶段 JSP 被转换为 servlet,处理后将输出发送到浏览器,因此在此期间我们必须编写 .css 文件的相对路径。我尝试了 Stack Overflow 中的几乎教程和问题,但它不起作用。我尝试 ${pageContext.request.contextPath} 检索上下文路径,但它不起作用。

在此应用程序中,我的目标是在 index.jsp 页面上显示新闻更新。所以我正在获取数据并将其显示在 JSP 上。为了实现这一点,第一个 Controller 运行并使用 DAO 类从数据库获取数据。然后 DAO 类将该数据返回到列表中给 Controller , Controller 然后将数据放入 RequestDispatcher 并将其发送到 JSP。现在,当我运行应用程序时,我在浏览器上获取数据,但它仅显示平面文本数据,不显示 CSS 效果。当我将index.jsp设置为欢迎页面并从中输入URL模式时,它显示得很好,但目前我的欢迎页面没有设置为任何页面,并且url模式是/所以我需要的一切都执行得很好,但CSS效果没有应用于输出,那么我该如何解决这个问题呢?

这里我发布了 Eclipse snap,请给我建议。

目录结构:

-MVCTest
   -src
   -build
   -WebContent
      -css
        -style.css
        -demo.css
      -js
        -jquery.js

web.xml代码

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>SwavaMVC</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <servlet-name>Visitor</servlet-name>
    <servlet-class>controller.Visitor</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Visitor</servlet-name>
    <url-pattern>/asdfD</url-pattern>
  </servlet-mapping>
</web-app>

Servlet类代码:

package controller;

import java.io.IOException;
import java.sql.SQLException;
import java.util.List;

import javax.servlet.ServletException;
//import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import model.NewsDAO;
import model.classes.News;

//@WebServlet("/Visitor")
public class Visitor extends HttpServlet {
    private static final long serialVersionUID = 1L;
    public Visitor() {
        super();
    }
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    {
        try {
            List<News> NewsList = NewsDAO.getNews();    
            request.setAttribute("NewsList", NewsList);
            request.getRequestDispatcher("index.jsp").forward(request, response);
        } 
        catch (SQLException e) {
            throw new ServletException("Cannot obtain news from DB", e);
        }
    }
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
}

这是index.jsp文件的代码:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>System</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />

<link rel="stylesheet" href="css/main_slider.css" type="text/css" media="screen" charset="utf-8" /> 

<script type="text/javascript" src="js/jquery-1.2.6.js"></script>
<script type="text/javascript" src="js/startstop-slider.js"></script>

<link href="css/demo.css" type="text/css" rel="stylesheet">
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.scrollbox.js"></script>

<script language="javascript" type="text/javascript">
function clearText(field)
{
    if (field.defaultValue == field.value) field.value = '';
    else if (field.value == '') field.value = field.defaultValue;
}
</script>

</head>
<body id="home">

最佳答案

确保您没有带有 url 映射“/*”的 Servlet。这就是让我非常头疼的问题。

关于java - 无法访问JSP中的CSS和JavaScript文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20129121/

相关文章:

几何基元的 Java 算法

java - 是否有用于 Java P2P 框架的 JXTA 的替代品?

java - JFrame 的组件仅在调整大小后才位于正确的位置(有时)

java - 如何使用java在jsp选择标签中显示数据库中的完整表值

java - Richfaces 脚本/样式未加载

java - 测试 servlet 的部署

java - HttpServletResponse 没有覆盖我设置的参数

java - 非实体变量: Fields in a "Serializable" class should either be transient or serializable

javascript - AJAX 脚本更改响应导航

java - Servlet 3.0中的AsyncContext无限浏览器加载