一尘不染

使用servlet将动态图像传递给JSP

jsp

我有一个桌面应用程序,可以创建一个图形2D对象,将其粘贴在面板中并进行绘制。我正在尝试使用servlet和jsps将此应用程序转换为网页。我已经在网上阅读了2天,但无法解决这个问题,我发现每个示例似乎都没有提及重要的内容。我不想将图像保存到文件中,因为每个用户都会得到一个新的/不同的图像。

我可以在servlet中创建图像以及其他响应变量,然后将它们同时传递给jsp吗?然后使用$
{response.image}之类的名称调用该图像。这似乎比较可取,但似乎不起作用。

还是我只需要一个单独的servlet来处理图像(这似乎比较困难)?另外,我如何准备Graphics2D对象用作HTML中的图像?


阅读 193

收藏
2020-06-08

共1个答案

一尘不染

您需要了解,是Web浏览器必须根据在<img>检索到的HTML代码中找到的元素的URL下载独立图像,并且 不是
Web服务器必须以某种方式将图像的原始内容内联到生成的HTML代码中。

为此,您确实确实需要创建一个独立的图像servlet,以侦听<img>元素的那些特定URL
。通过在生成HTML代码期间在请求查询字符串或请求路径信息中提供唯一的图像标识符,可以使servlet可重用。

例如

<img src="imageServlet?param1=value1&param2=value2" />

与一个

@WebServlet("/imageServlet")
public class ImageServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // Create image based on request.getParameter() information.
        // Set proper content type by response.setContentType().
        // Write image to response.getOutputStream().
    }

}
2020-06-08