Servlet页面显示源代码而不是图像

时间:2020-08-08 14:57:05

标签: java jsp servlets

这是我的index.jsp

<%@page contentType="text/html; ISO-8859-1" %>
    <html>
    <body>
    <h2>Hello World!</h2>
    <a href="Servlet.java">Get IMG</a>
    </body>
    </html>

链接到Servlet.java

@WebServlet(name = "Servlet")
public class Servlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("image/jpeg");
        ServletOutputStream out = response.getOutputStream();
        FileInputStream fin = new FileInputStream("D:\\1234.jpg");
        BufferedInputStream bin = new BufferedInputStream(fin);
        BufferedOutputStream bout = new BufferedOutputStream(out);
        int ch;
        while ((ch = bin.read()) != -1) {
            bout.write(ch);
        }
        bin.close();
        fin.close();
        bout.close();
        out.close();
    }
}

我的结果:https://i.stack.imgur.com/Lkuo8.png

我确实尝试设置了不同的响应contentType,但似乎无济于事。

1 个答案:

答案 0 :(得分:0)

您做错了两件事

  • 您的servlet应该位于源目录中,而不是在Web根目录中。
    如果这些文件位于Web根目录内,则它们将按原样发送,除非服务器知道如何解析它们(例如jsp文件)。

  • 如果要使用Servlet.java指定要放置在Servlet上,请不要链接到@WebServlet(name = "Servlet")

相关问题