将java应用程序转换为jsp/servlet

将java应用程序转换为jsp/servlet,java,jsp,servlets,Java,Jsp,Servlets,我有一个接受多部分上传的java应用程序,我的问题是我希望有一个HTML/JSP前端,而不是仅仅在服务器上工作。根据我提供的代码,实现这一点的最佳方法是什么。这让我有点困惑,因为我不确定如何将文件上传部分引入html/jsp页面。任何建议都会有帮助 多谢各位, 语气 将Java代码放入JSP是一种已经被质疑了10年的做法。在moderne JSP中,使用JSTL和EL来代替糟糕的Java代码 您可能会发现这有助于学习如何构建现代web应用程序。您可以使用JSP提供UI(即浏览和上载文件)。您可以

我有一个接受多部分上传的java应用程序,我的问题是我希望有一个HTML/JSP前端,而不是仅仅在服务器上工作。根据我提供的代码,实现这一点的最佳方法是什么。这让我有点困惑,因为我不确定如何将文件上传部分引入html/jsp页面。任何建议都会有帮助

多谢各位, 语气


将Java代码放入JSP是一种已经被质疑了10年的做法。在moderne JSP中,使用JSTL和EL来代替糟糕的Java代码


您可能会发现这有助于学习如何构建现代web应用程序。

您可以使用
JSP
提供UI(即浏览和上载文件)。您可以使用HTML的多部分表单和文件标记进行相同的操作。更多关于这个

此外,您还可以使用
Servlet
将控件委托给处理该文件的适当业务类


这样,您就可以清楚地区分模型、视图和控制器。

您在这里使用的是swing for GUI。代替SwingGUI,您可以使用JSP进行查看或GUI,通过使用JSP可以捕获用户输入并在JSP上填充数据。对于处理业务逻辑,您可以使用servlet

希望它能帮助你

将java应用程序转换为jsp/servlet

根据它是什么样的程序,可以很容易地将包含
main()
方法的类作为
HttpServlet
的子类,并将
main()
方法中的所有内容放入servlet的
doGet()方法
。然后将所有
System.out.println()
语句替换为以HTML格式打印输出的语句。如果它只是一个没有
GUI(图形用户界面)
的命令行程序,那么它就可以工作

如果您的程序没有GUI,那么您可以停止阅读此处。如果它确实有一个GUI,那么它可能会复杂得多。根据程序的类型,您可以执行以下操作之一:

1。将整个内容放入小程序中。

这很简单。与其替换几行代码将程序转换为Servlet,不如替换几行代码将其转换为Applet。
如果您不需要与服务器通信,就可以这样做,就像您有一个solitare游戏一样。否则,您可以执行#2。

2。将GUI放入小程序中,并将后端保留在服务器上。

这就是所谓的“客户机/服务器”应用程序。

3。创建基于JSP/Servlet的网站。

这是最复杂的选项,但如果您不想使用applet,这是唯一的选择。这里您将从基于Java的GUI更改为基于HTML/CSS的GUI。您可能还需要一些JavaScript。如果您不熟悉所有这些东西,但对使用Swing之类的东西制作JavaGUI感到满意,那么您可能需要查看GWT(GoogleWebToolkit)。
这允许您使用纯Java创建丰富的网站。Java代码“编译”成HTML和Javascript。

另一个:

这是在运行时完成的,当JSP第一次被调用时。一些web服务器还附带JSP编译器,允许在构建时执行此操作,这有两个优点:

  • 它允许在构建时检测JSP语法错误,而不是 运行时。

  • 它避免了第一次调用时间的损失(这需要一些时间) 将JSP编译为Java,然后将Java编译为字节码)。


  • Java Swing应用程序以何种方式接受多部分表单上载?你想干什么?您发布的代码看起来像一个Amazon S3示例应用程序。嗨,Elliott,是的,这是一个AWS S3示例。我可以在eclipse中以java应用程序的形式成功运行该应用程序,但是我希望上传方面成为html页面的一部分,这样我就可以在ec2实例上托管它。TransferManager是一个高级api,其中内置了多部分上载。现在该应用程序作为java应用程序运行,我正在尝试从浏览器运行它。谢谢
    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.File;
    
    import javax.swing.BorderFactory;
    import javax.swing.JButton;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JProgressBar;
    
    import com.amazonaws.AmazonClientException;
    import com.amazonaws.auth.AWSCredentials;
    import com.amazonaws.auth.ClasspathPropertiesFileCredentialsProvider;
    import com.amazonaws.regions.Region;
    import com.amazonaws.regions.Regions;
    import com.amazonaws.services.s3.AmazonS3;
    import com.amazonaws.services.s3.AmazonS3Client;
    import com.amazonaws.services.s3.model.ProgressEvent;
    import com.amazonaws.services.s3.model.ProgressListener;
    import com.amazonaws.services.s3.model.PutObjectRequest;
    import com.amazonaws.services.s3.transfer.TransferManager;
    import com.amazonaws.services.s3.transfer.Upload;
    
    public class S3TransferProgressSample {
    
    private static AWSCredentials credentials;
    private static TransferManager tx;
    private static String bucketName;
    
    private JProgressBar pb;
    private JFrame frame;
    private Upload upload;
    private JButton button;
    
    public static void main(String[] args) throws Exception {
    
        AmazonS3 s3 = new AmazonS3Client(credentials = new ClasspathPropertiesFileCredentialsProvider().getCredentials());
        Region usWest2 = Region.getRegion(Regions.US_WEST_2);
        s3.setRegion(usWest2);
        tx = new TransferManager(s3);
    
        bucketName = "s3-upload-sdk-sample-" + credentials.getAWSAccessKeyId().toLowerCase();
    
        new S3TransferProgressSample();
    }
    
    public S3TransferProgressSample() throws Exception {
        frame = new JFrame("Amazon S3 File Upload");
        button = new JButton("Choose File...");
        button.addActionListener(new ButtonListener());
    
        pb = new JProgressBar(0, 100);
        pb.setStringPainted(true);
    
        frame.setContentPane(createContentPane());
        frame.pack();
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    
    class ButtonListener implements ActionListener {
        public void actionPerformed(ActionEvent ae) {
            JFileChooser fileChooser = new JFileChooser();
            int showOpenDialog = fileChooser.showOpenDialog(frame);
            if (showOpenDialog != JFileChooser.APPROVE_OPTION) return;
    
            createAmazonS3Bucket();
    
            ProgressListener progressListener = new ProgressListener() {
                public void progressChanged(ProgressEvent progressEvent) {
                    if (upload == null) return;
    
                    pb.setValue((int)upload.getProgress().getPercentTransfered());
    
                    switch (progressEvent.getEventCode()) {
                    case ProgressEvent.COMPLETED_EVENT_CODE:
                        pb.setValue(100);
                        break;
                    case ProgressEvent.FAILED_EVENT_CODE:
                        try {
                            AmazonClientException e = upload.waitForException();
                            JOptionPane.showMessageDialog(frame,
                                    "Unable to upload file to Amazon S3: " + e.getMessage(),
                                    "Error Uploading File", JOptionPane.ERROR_MESSAGE);
                        } catch (InterruptedException e) {}
                        break;
                    }
                }
            };
    
            File fileToUpload = fileChooser.getSelectedFile();
            PutObjectRequest request = new PutObjectRequest(
                    bucketName, fileToUpload.getName(), fileToUpload)
                .withProgressListener(progressListener);
            upload = tx.upload(request);
        }
    }
    
    private void createAmazonS3Bucket() {
        try {
            if (tx.getAmazonS3Client().doesBucketExist(bucketName) == false) {
                tx.getAmazonS3Client().createBucket(bucketName);
            }
        } catch (AmazonClientException ace) {
            JOptionPane.showMessageDialog(frame, "Unable to create a new Amazon S3 bucket: " + ace.getMessage(),
                    "Error Creating Bucket", JOptionPane.ERROR_MESSAGE);
        }
    }
    
    private JPanel createContentPane() {
        JPanel panel = new JPanel();
        panel.add(button);
        panel.add(pb);
    
        JPanel borderPanel = new JPanel();
        borderPanel.setLayout(new BorderLayout());
        borderPanel.add(panel, BorderLayout.NORTH);
        borderPanel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
        return borderPanel;
        }
    }