将JavaSwing包含在JSP中可以吗?

将JavaSwing包含在JSP中可以吗?,java,swing,jsp,Java,Swing,Jsp,我尝试在JSP页面中使用Swing代码。令我惊讶的是,它确实工作得很好 但我无法判断是否可以将Swing与JSP一起使用 基本上我想显示数据库中的一些弹出报告。我想显示一个JFrame弹出窗口/小程序来完成这个任务 但是网络浏览器需要额外的插件吗 还是做这样的事很好?任何指导都会有帮助 JSP将在服务器上运行,并可能在那里显示GUI, 但你为什么要这样?与此同时,客户的人 提交请求的人会坐在那里等着别人 在服务器端关闭Swing窗口,以便JSP可以继续运行 与它的工作 所以我想说这是不可行的。请

我尝试在JSP页面中使用Swing代码。令我惊讶的是,它确实工作得很好

但我无法判断是否可以将Swing与JSP一起使用

基本上我想显示数据库中的一些弹出报告。我想显示一个JFrame弹出窗口/小程序来完成这个任务

但是网络浏览器需要额外的插件吗

还是做这样的事很好?任何指导都会有帮助

JSP将在服务器上运行,并可能在那里显示GUI, 但你为什么要这样?与此同时,客户的人 提交请求的人会坐在那里等着别人 在服务器端关闭Swing窗口,以便JSP可以继续运行 与它的工作


所以我想说这是不可行的。

请记住,插入JSP的每个java片段都是在服务器端执行的,因此这可能是一种欺骗——它似乎在您的开发本地机器中工作,但这只是因为服务器端和客户端在同一个机器上运行


正确的方法是编写一个小程序并将其包含到页面中——这样,浏览器将把它下载到客户端并在那里运行。您应该将JApplet子类化,然后您将能够随意使用Swing组件。库可以工作,但如果您有一个工作窗口服务,您的控件将永远不会显示在客户端浏览器上,而是显示在服务器上:Ms Windows、X11、Xorg等等

我认为这不是一个好的实践,我只会使用Swing库类,不显示GUI组件,而是使用一些类来存储特殊对象,例如存储图标。但永远不要试图画它们

我有一个项目,我使用它在JSP中生成一个PNG,表示一些数学公式,在这个上下文中,我使用javax.swing.JLabel生成图像:

    TeXFormula formula = new TeXFormula(texCode);
    TeXIcon texImg = formula.createTeXIcon(TeXConstants.STYLE_DISPLAY, 25);
    BufferedImage img = new BufferedImage(texImg.getIconWidth(), texImg.getIconHeight(), 
            BufferedImage.TYPE_4BYTE_ABGR);
    texImg.paintIcon(new JLabel(),img.getGraphics(), 0, 0);
    try {
        OutputStream os = res.getOutputStream();
        res.setContentType("image/png");
        ImageIO.write(img, "png", os);
        os.close();
        res.flushBuffer();
    } catch (Exception ex) {
        log.warn("LaTeX renderer: " + ex.toString() + "\t" + "Msg: " + ex.getMessage());
        return;
    }

正如对Pablo的一段漂亮代码的评论一样,当在服务器端完成这类操作时,您必须以无头模式启动应用程序服务器。哇,这将是我机器上最大的工作!崩溃,如果这是在实际应用中。是的,我试过一次。。我需要4个人来帮助我运行应用程序。也可以考虑通过部署。如果我需要为我的用户部署一个纯Swing应用程序,在这种情况下你是对的,Web启动是一个很好的选择,我已经使用过。因为OP说他们有JSP,所以我建议使用applet,因为我认为它是最类似于我想象中他们想要的选项