java - 使用 servlet 将动态图像传递到 JSP

标签 java image jsp servlets

我有一个桌面应用程序,可以创建图形 2D 对象,将其粘贴在面板中并进行绘制。我正在尝试使用 servlet 和 jsp 将此应用程序转换为网页。我已经在网上阅读了两天,但无法理解如何做到这一点,我发现的每个例子似乎都遗漏了一个重要的部分。我不想将图像保存到文件中,因为每个用户都会得到一个新的/不同的图像。

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

或者我是否需要一个单独的 servlet 来处理图像(这似乎更难)?另外,如何准备 Graphics2D 对象以用作 HTML 中的图像?

最佳答案

您需要了解,网络浏览器必须根据 <img> 的 URL 下载单独的图像。检索到的 HTML 代码中找到的元素,并且不是网络服务器必须以某种方式将图像的原始内容内联到生成的 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().
    }

}

另请参阅:

关于java - 使用 servlet 将动态图像传递到 JSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10564594/

相关文章:

java - 如何找到对象的类型然后相应地工作?

android - android 中的 IllegalArgumentException : x + width must be <= bitmap. width()

html - 为什么我的图像下面有空间?

ios - 如何混合两个图像?

JSP 标签生命周期

java - 使用显示标签和外部分页导出数据

java - 在同一 JVM 中检测到多个 SparkContext

java无法调用第二类

java - 如何在通过java代码运行jmeter时传递自定义属性而不编辑jmx文件

javascript - 使用 JSP 在 AlloyUI 数据表中填充数据的优雅方式