java使用session属性将servlet显示为img src
我有一个用于显示图像的servlet。这个servlet实际上由
<img src="/displaySessionImage?widgetName=something"/>
我的get&;post重定向到此方法
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
String widgetName = request.getParameter("widgetName");
try {
//this is my file manager which was store ealier
StorageFile file = (StorageFile)session.getAttribute(widgetName);
response.setContentType(file.getContentType());
//the file manager can retrieve input stream
InputStream in = file.getInputStream();
OutputStream outImage = response.getOutputStream();
byte[] buf = new byte[1024];
int count = 0;
while ((count = in.read(buf)) >= 0) {
outImage.write(buf, 0, count);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
但此代码不起作用,无法显示图像。我认为这不会起作用,因为我已经在会话中存储了包含输入流的文件管理器。同样的方法也适用于从数据库中检索的另一个图像文件,而不是存储在会话中。我已经打印出了输入流。它包含与数据库文件相同的输入流
代码有问题吗? 或者我实际上无法在会话中存储包含输入流的文件管理器? 还是我用错了输入流
共 (0) 个答案