超级jar中的HttpServlet可以发送一个位于jar内的页面吗?

时间:2014-01-13 21:12:19

标签: java maven servlets uberjar file-location

我正在编写一个捆绑在超级jar中的localhost web / websocket应用程序。

这是一个单页网站,HttpServlet将发送与WebSocket服务器通信的html。我希望页面保留在jar中,让HttpServlet能够从那里加载它并将其发送给客户端。

这可能吗?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:0)

HttpServlet可以返回它想要的任何内容,你需要做的就是在响应中设置你想要的内容。

我猜你实际上正在寻找的答案看起来像这样

public class MyServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) {
        PrintWriter out = response.getWriter();
        InputStream input = this.class.getResourceAsStream("/path/to/this.html");
        BufferedReader reader = new BufferedReader(new InputStreamReader(input));
        String line;
        while ((line = reader.readLine()) != null) {
            out.println(line);
        }
    }
}

答案 1 :(得分:0)

目前尚不清楚你要求的是什么。

如果您尝试从类路径加载文件(例如在jar中),您可以这样做

public class Test {

    public static void main(String[] args) {
        InputStream resourceAsStream = Test.class.getResourceAsStream("/test.html");
        // use the stream here...
        System.out.println(resourceAsStream);
    }
}