java - Web.xml 警告 "File name references to main that does not exist in web content"

标签 java css jsp servlets web.xml

问题:

  1. 我想在 web.xml 中将 servlet 'main' 设置为欢迎文件,但它显示警告“Web 内容中不存在对 main 的文件名引用”
  2. 浏览器无法访问 CSS 文件,但可以访问位于同一父目录“assests”下的图像
  3. 我想知道这两个问题是否相关以及如何解决它们

我已经提到的内容:

  1. > how-to-include-external-css-file-in-jsp
  2. 类似的 SO 问题:1 , 2 , 3

结果:

网络.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="3.1"
 xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
 <display-name>SampleApplication</display-name>
 <welcome-file-list>
  <welcome-file>main</welcome-file>
 </welcome-file-list>
</web-app>

主Servlet.java

@WebServlet(name = "main", urlPatterns = { "/main" })
public class MainServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    public MainServlet() {
        super();
    }

    /**
     * Forwards to the main page.
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        RequestDispatcher dispatcher
        = this.getServletContext().getRequestDispatcher("/WEB-INF/views/MainView.jsp");
        dispatcher.forward(request, response);

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //Additional Logic
    }

主视图.jsp

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Ship Short Dated Products</title>

<!-- ---------------------- BOOTSTRAP AND CUSTOM STYLESHEETS ----------------------- -->
<link rel="stylesheet" type="text/css"
    href="<c:url value="http://fonts.googleapis.com/css?family=Roboto:400,100,300,500" />">
<link rel="stylesheet" type="text/css"
    href="<c:url value="/assets/bootstrap-3.3.7-dist/css/bootstrap.min.css" />">
<link rel="stylesheet" type="text/css"
    href="<c:url value="/assets/font-awesome/css/font-awesome.min.css" />">
<link rel="stylesheet" type="text/css"
    href="<c:url value="/assets/css/form-elements.css" />">
<link rel="stylesheet" type="text/css"
    href="<c:url value="/assets/css/main-layout.css" />">

<!-- 
--------------------------- JQUERY AND BOOTSTRAP PLUGINS -------------------------------
--------------------------- Please maintain the order for libs -------------------------
-->
<script
    src="<c:url value="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" />"></script>
<script
    src="<c:url value="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" />"></script>

<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->

</head>

<body>
    <!-- -------------------------------- IMAGE CONTENT -------------------------------- -->
    <img class="img-responsive" src="assests/images/HMSGradient.jpg">
    <!-- IMAGE CONTENT End -->

</body>
</html>

目录结构

enter image description here

谢谢!

最佳答案

您应该在 <welcome-file> 中定义一个欢迎文件列表元素。所以请尝试将其更改为 <welcome-file>MainView.jsp</welcome-file>并将 jsp 文件移动到 WebContent/main/ .此外,您不需要 MainServlet.java .

关于java - Web.xml 警告 "File name references to main that does not exist in web content",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49800649/

相关文章:

java - 如何通过 NetManager 类使用 Telnet 设置服务器-客户端通信

java - 如何将天数添加到java简单日期格式

java - 引入struts2标签后表单未正确对齐

java - 如何在jsp页面中显示缓冲图像?

java - 否定字符串替换的正则表达式

java - ListView : Prevent a view from recycling

html - 所选选项卡失去其背景颜色

javascript - 如何在旋转时将图像保持在原来的位置

javascript - CSS :hover not working after jquery load();

java - 日期类和 Hibernate