Web.xml警告“对Web内容中不存在的主文件名引用”

时间:2018-04-12 15:37:39

标签: java css jsp servlets web.xml

问题:

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

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

      的web.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>
      

      MainServlet.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
          }
      

      MainView.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

      谢谢!

1 个答案:

答案 0 :(得分:0)

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