Jakarta ee 默认servlet的静态资源路径

Jakarta ee 默认servlet的静态资源路径,jakarta-ee,servlets,Jakarta Ee,Servlets,我对来自PHPzend的Java servlet还不熟悉,我在获取静态内容(如js、css等)时遇到了一些问题 首先,这里是项目的文件夹结构: com.a.b.c.servlet bin com ... LoginServlet.class ResourceServlet.class resources languages templates lo

我对来自PHPzend的Java servlet还不熟悉,我在获取静态内容(如js、css等)时遇到了一些问题

首先,这里是项目的文件夹结构:

com.a.b.c.servlet
    bin
       com
          ...
             LoginServlet.class
             ResourceServlet.class
    resources
       languages
       templates
          login.html
       static
          css
             style.css
          js
             script.js
    src
       com
          ...
             LoginServlet.java
             ResourceServlet.java
    WebContent
       META-INF
       WEB-INF
首先,我编写了一个资源Servlet,用于获取静态内容,如下所示

    InputStreamReader resource = new InputStreamReader(getServletContext().getResourceAsStream("/WEB-INF/resources/static" + request.getPathInfo()), "UTF-8");
    OutputStream out = response.getOutputStream();
    for ( int c; ( c = resource.read() ) != -1; )

        out.write(c);
    }
。。。但我在图像方面遇到了一些问题,因此我寻找了最佳实践,并发现:

选项3对我来说似乎是一个不错的选项,因此我将这几行添加到了我的web.xml中,并删除了ResourceServlet映射

  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>


 <servlet-mapping>
    <servlet-name>ResourceServlet</servlet-name>
    <url-pattern>/static/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.png</url-pattern>
    <url-pattern>*.js</url-pattern>
    <url-pattern>*.css</url-pattern>
</servlet-mapping>
但是资源没有加载。。。我试过几条路,比如

<link rel="stylesheet" href="static/css/style.css" />
<link rel="stylesheet" href="css/style.css" />
并将静态文件夹放在不同的位置


有什么想法吗?

为什么要编写一个servlet来服务静态资源?你为什么不直接将静态资源放在WebContent中,从而直接放在部署的应用程序中呢?不幸的是,我没有尝试这个文件夹。。。thx,这就是解决方案