这是我的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,但似乎无济于事。
答案 0 :(得分:0)
您做错了两件事
您的servlet应该位于源目录中,而不是在Web根目录中。
如果这些文件位于Web根目录内,则它们将按原样发送,除非服务器知道如何解析它们(例如jsp文件)。
如果要使用Servlet.java
指定要放置在Servlet
上,请不要链接到@WebServlet(name = "Servlet")
。