Servlets 从jar交付Java脚本

Servlets 从jar交付Java脚本,servlets,dwr,Servlets,Dwr,我有一个java web应用程序。这里有一些javascript文件,我想放在jar文件中。我希望会有一个servlet,它将从jar交付javascript文件。该功能类似于库。他们有一些文件系统中没有的javascript文件。相反,他们从jar中交付Java脚本。全班同学都这样做。但是路径包含在html头中。我想实现这样一个特性。你们能告诉我如何实现JAR中的资源是类路径的一部分吗。您可以通过ClassLoader\getResourceAsStream()获取类路径资源的InputStr

我有一个java web应用程序。这里有一些javascript文件,我想放在jar文件中。我希望会有一个servlet,它将从jar交付javascript文件。该功能类似于库。他们有一些文件系统中没有的javascript文件。相反,他们从jar中交付Java脚本。全班同学都这样做。但是路径包含在html头中。我想实现这样一个特性。你们能告诉我如何实现JAR中的资源是类路径的一部分吗。您可以通过
ClassLoader\getResourceAsStream()
获取类路径资源的
InputStream
。所以,让您的Servlet正好做到这一点

假设您在JAR的
/META-INF/resources
中有这些JS资源:

@WebServlet("/resources/*")
public class ResourceServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String path = request.getPathInfo();
        ClassLoader loader = Thread.currentThread().getContextClassLoader();
        InputStream input = loader.getResourceAsStream("/META-INF/resources" + path);

        if (input != null) {
            response.setContentType(getServletContext().getMimeType(path));
            OutputStream output = response.getOutputStream();
            // Now just write input to output the usual way.
        } else {
            response.sendError(404);
        }
    }

}
然后您可以通过以下方式获得JAR的
/META-INF/resources/some.js