有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java通过Servlet访问静态资源

我有网络。将url映射到html页面的xml配置。问题是这个html页面有指向js、css和字体文件的链接,这些文件位于同一目录或子目录中,服务器默认返回404,因为不存在显式映射

如何获取所有这些静态文件(但仅限于特定前缀)

我试着做了以下几件事

<servlet>
        <servlet-name>myPage</servlet-name>
        <servlet-class>com.test.MyPageServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>myPage</servlet-name>
        <url-pattern>/myPage/*</url-pattern>
    </servlet-mapping>

MyPageServlet。爪哇

@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        FileInputStream inputStream = new FileInputStream(new File(... omitted));
        OutputStream outputStream = resp.getOutputStream();
        int BUFF_SIZE = 1024;
        byte[] buffer = new byte[BUFF_SIZE];
        try {
            int byteRead = 0;
            while ((byteRead = inputStream.read()) != -1) {
                outputStream.write(buffer, 0, byteRead);
            }
            outputStream.flush();
        } catch (Exception e) {
            System.out.println(e);
        } finally {
            outputStream.close();
            inputStream.close();
        }
    }

首先,我自己实现了它,然后在这个article(解决方案#2)上遇到了它,在这里,它与我之前所做的相同

问题是接收到的输出不可读,所以浏览器无法解释它。我也尝试过以字符串的形式读取文件,但如果是二进制文件(图标、字体等),读取失败


共 (0) 个答案