有 Java 编程相关的问题?

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

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) 个答案