无法访问JSP中的CSS和JavaScript文件
我正在使用MVC在JSP/Servlet中开发一个应用程序。在这个应用程序中,我想加载index.jsp作为欢迎页面,这个页面从数据库检索数据。我做到了。现在的问题是,当index.jsp页面加载时,它从数据库中获取数据,但它在浏览器上以纯文本的形式显示,而我的CSS不适用于它 我知道,在翻译阶段,JSP被转换成servlet,处理后将输出发送到浏览器,因此在此期间,我们必须编写.css文件的相对路径。我在Stack Overflow中尝试了几乎所有的教程和问题,但都不起作用。我尝试${pageContext.request.contextPath}检索上下文路径,但它不起作用无法访问JSP中的CSS和JavaScript文件,java,jsp,servlets,model-view-controller,Java,Jsp,Servlets,Model View Controller,我正在使用MVC在JSP/Servlet中开发一个应用程序。在这个应用程序中,我想加载index.jsp作为欢迎页面,这个页面从数据库检索数据。我做到了。现在的问题是,当index.jsp页面加载时,它从数据库中获取数据,但它在浏览器上以纯文本的形式显示,而我的CSS不适用于它 我知道,在翻译阶段,JSP被转换成servlet,处理后将输出发送到浏览器,因此在此期间,我们必须编写.css文件的相对路径。我在Stack Overflow中尝试了几乎所有的教程和问题,但都不起作用。我尝试${page
在这个应用程序中,我的目标是在index.jsp页面上显示新闻更新。所以我获取数据并在JSP上显示它。为了实现这一点,第一个控制器运行并使用DAO类从数据库中获取数据。然后DAO类将该数据返回到列表中给控制器和控制器,然后将数据放入RequestDispatcher并将其发送到JSP。现在,当我运行应用程序时,我在浏览器上获取数据,但它只显示平面文本数据,而不显示CSS效果。当我将index.jsp设置为欢迎页面时,当我键入URL模式时,它会显示良好,但目前我的欢迎页面未设置为任何页面,URL模式是/所以我所需的一切都执行得很好,但CSS效果未应用于输出,所以如何解决此问题 我在这里发布Eclipse快照,请给我一些建议 目录结构:
-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">
试试这个
<link href=${pageContext.request.contextPath}/css/style.css rel="stylesheet" type="text/css" />
这对我很有用。您的上下文路径${pageContext.request.contextPath}可能不正确。试着在jsp上打印这个值,看看它是否正确
一旦您纠正了这一点,您应该能够正确加载css、js文件。当您运行应用程序时,控制器调用.jsp,并且jsp在转换阶段被转换为servlet,所以请尝试使用${pageContext.request.contextPath}添加相对路径 然后检查web.xml中的url模式,并将其留空,然后尝试使用它 尝试使用JSTL 将其添加到JSP页面 然后像这样使用url标记库
确保没有url映射为/*的Servlet。这就是让我头疼的问题 实际上,当我把它放在第二行的上方时,它在${pageContext.request.contextPath}下方显示红色的线条,并且我在没有CSW的情况下得到了相同的输出,当您尝试此操作时,浏览器中实际呈现的是什么?在这个应用程序中,我的目标是在index.jsp页面上显示新闻更新。所以我获取数据并在jsp上显示它。为了实现这一点,第一个控制器运行并使用DAO类从数据库中获取数据。然后DAO类将该数据返回到列表中给控制器和控制器,然后将数据放入requestdispatcher并将其发送到jsp。现在,当我运行应用程序时,我在浏览器上获取数据,但它只显示平面文本数据,而不显示css效果。当我将index.jsp设置为欢迎页面,并从中键入url模式时,它显示良好,当前我的url模式设置为/。那么我该如何关联呢:我打印了它显示的值/MVCTest,即我的应用程序的名称,但是当我像href=@{pageContext.request.contextPath}/css/style.css这样写的时候,它不起作用……试着声明标记,然后你的样式表引用作为检查是否有用的工具。我试过了,但不起作用。我刚刚发布了更多的代码,所以请看一次并建议我。
<link href="<c:url value='/static/vendor/bootstrap/css/bootstrap.min.css'/>" rel="stylesheet">