`
pichcar
  • 浏览: 289432 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Applet与Servlet之间的通信与交互

阅读更多
                   Applet与Servlet之间的通信与交互
Applet的优势在于可以操作客户端的资源,一般要操作客户端的资源---如上传文件,调用客户端的应用程序,调用客户端的打印机实现本地打印等,一般都是用Applet程序实现的,并将其嵌入到网页中,通过Applet将本地资源转换成流,然后连接后台服务器的SERVLET,并达到与之交互,将客户端的资源上传到服务器中.如我最近在项目中遇到的的一个问题:需要将客户端的桌面上的文件上传到服务器上的特定文件中.
Applet小程序
import java.applet.Applet;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import javax.swing.filechooser.FileSystemView;


public class DesktopReadJpg extends Applet{
   
    /**
     * 初始化Applet
     */
    public void init()
    {
        FileSystemView fsv = FileSystemView.getFileSystemView();
        File vFile = fsv.getHomeDirectory();
        String path = vFile.getPath();
       
        String picUrl = getParameter("PICURL");
        try{
            //URL url1 = new URL("http://localhost:8080/vmis/appletServlet");
            URL url1 = new URL(picUrl);
            HttpURLConnection conn = (HttpURLConnection) url1.openConnection();
            conn.setRequestMethod("POST");
            conn.setAllowUserInteraction(true);
            conn.setDoInput(true);
            conn.setDoOutput(true);
            conn.setUseCaches(true);
            conn.setRequestProperty("Content-Type", "application/octet-stream");
           
           
            File jpgFile = new File(path+"\\ZP.JPG");
            if(jpgFile.isFile()){
                // 建立文件的输入流
                FileInputStream fileInputStream = null;
                fileInputStream = new FileInputStream(jpgFile);
                BufferedInputStream bis=new BufferedInputStream(fileInputStream);
                OutputStream os = conn.getOutputStream();
                BufferedOutputStream bos=new BufferedOutputStream(os);
                int len =0;
                byte[] bty=new byte[4096];
                while((len=bis.read(bty,0,4096))!=-1){
                    bos.write(bty, 0, len);
                    bos.flush();
                   
                }
                bos.close();
                bis.close();
                System.out.println(conn.getContentType() + ": "
                        + conn.getResponseCode());
            }
        }catch(Exception e){
            e.printStackTrace();
           
        }
      
    }
}

其中System.out.println(conn.getContentType() + ": "+
conn.getResponseCode());,这句必须加上才能够连接上服务器上的Servlet完成上传工作
与之交互的Servlet程序:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.maslong.pub.Constants;


public class AppletServlet extends HttpServlet{
   
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException {
            InputStream in = request.getInputStream();       
           //System.out.print(request.getParameter("username"));
            File f = new File(Constants.PHOTODIR+"Head.JPG");
            FileOutputStream fos = new FileOutputStream(f);

            byte[] b = new byte[1024 * 1024];
            int bytes, sumBytes = 0;

            while (true) {
                bytes = in.read(b);
                if (bytes <= 0)
                    break;
                sumBytes += bytes;
                fos.write(b, 0, bytes);
            }
            fos.close();
            in.close();         
    }
   
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws IOException {

        doGet(request, response);
    }
}
分享到:
评论

相关推荐

    Applet与Servlet的通信技术.pdf

    实现这一机制的关键是采用面向对象的方法,通过封装和抽象来简化通信过程,使得Applet与Servlet之间能够进行更高效、简洁的信息交互。 面向对象方法的应用在于,将Applet和Servlet中的通信逻辑封装成独立的对象,...

    Applet与servlet、数据库交互

    材料列表: 1.applet 数字签名 安全问题 2.Applet访问mysql数据库 3.Applet和Servlet利用http对象流通信 4.J2EE企业应用:Applet和Servlet的通信...等等

    基于Java Applet与servlet通信技术的Web文本页面保护方法.pdf

    "基于Java Applet与servlet通信技术的Web文本页面保护方法" 本文提出了一种基于Java Applet与servlet通信技术的Web文本页面保护方法。该方法通过使用Java Applet与servlet通信技术来保护Web文本页面,让用户无法...

    applet与servlet通讯

    7. **使用 RMI (Remote Method Invocation)**:虽然 RMI 不是为浏览器环境设计的,但在特定情况下,通过加密和隧道技术,可以实现 Applet 与 Servlet 之间的 RMI 通信。 每种通信策略都有其优缺点,开发者应根据...

    jasperreport报表模板预览 applet与servlet通信

    标题中的“jasperreport报表模板预览 applet与servlet通信”揭示了本文将要讨论的重点,即如何在Java环境中使用JasperReport库创建报表模板,并通过Applet和Servlet进行数据交互来实现预览功能。JasperReport是一个...

    Java Applet与Java Servlet的安全通信策略与实现.rar_applet_applet servlet_jav

    - **使用URLConnection或HttpURLConnection**:Java提供了标准库,允许Applet创建HTTP请求并与Servlet通信。 - **Java Networking API**:通过Socket或HttpURLConnection实现客户端到服务器的低级别通信。 - **...

    Applet and Servlet Communication

    2. **Applet与Servlet通信的必要性** Applet虽然可以直接与浏览器交互,但其与服务器的通信受到同源策略的限制,因此需要通过Servlet作为中介,来实现与服务器的通信,传递数据或执行服务器端操作。 3. **通信方式...

    applet和servlet的通讯,并打印

    本文将详细探讨Applet与Servlet之间的通信以及如何利用这种通信机制实现文件的打印功能。 Applet是Java的一种小程序,它可以在用户的Web浏览器中运行,为用户提供交互式体验。而Servlet则是Java Web应用中的服务器...

    Applet与Servlet的通讯.txt

    ### Applet与Servlet通信概述 Applet是一种可以在Web页面上运行的小型Java应用程序。Servlet则是一种服务器端的技术,用于处理客户端发送的HTTP请求,并生成响应。Applet与Servlet之间的通信通常是基于HTTP协议的,...

    J2EE企业应用之Applet和Servlet间的通信

    由于浏览器的安全模型,Applet在与Servlet通信时面临一些限制。Applet只能与发布它的服务器进行通信,不能直接访问本地文件系统或执行本地程序,也不能创建或接受非源服务器的socket连接。这使得直接从Applet访问...

    applet与servlet的网络通信

    本篇文章将详细探讨`Applet`与`Servlet`的网络通信,以及它们如何协同工作来实现动态交互。 首先,让我们了解一下`Applet`。`Applet`是Java的一种早期Web应用形式,它是在Web浏览器中运行的小型Java程序。通过Java...

    applet2servlet

    标题“applet2servlet”涉及的是Java编程领域中一种特定的交互技术,即Java小应用程序(Applet)与Servlet之间的通信。在Web应用程序开发中,Applet是一种嵌入到HTML页面中的小型Java程序,而Servlet是运行在服务器...

    Applet servlet

    ### Applet与Servlet通信 在早期的Java Web开发中,Applet是一种嵌入到网页中的小型应用程序,它可以实现更丰富的用户界面和功能。Servlet则作为服务器端处理请求的核心组件,可以接收HTTP请求并作出响应。Applet与...

    一个servlet 和 applet 通讯的完整项目

    `Employee2.2`可能是一个特定版本的Employee类,可能用于模拟用户或系统中的员工信息,参与到Servlet和Applet之间的通信中。 通过分析这个项目,开发者可以学习到如何在Servlet中创建处理请求的方法,如何在Applet...

    applet与jsp的交互

    6. **使用Java RMI(远程方法调用)**:虽然不是常见的做法,但Applet可以通过RMI与服务器上的JSP进行通信,允许在客户端和服务器之间调用方法。不过,由于RMI涉及的安全性和复杂性,这种方法在实际应用中并不常见。...

    servlet applet通讯的例子

    另一种方式是Applet直接通过URLConnection或HttpURLConnection与Servlet通信,发送请求并接收响应。 2. **URLConnection类**: - TestURLConnection这个文件可能是一个演示如何使用URLConnection来建立Servlet和...

    Java Applet与浏览器间的通信技术.pdf

    本文档主要探讨的是Java Applet如何与浏览器进行通信,这是理解Web应用程序交互机制的关键部分。 一、Java Applet的基本概念 Java Applet是一种小型的Java程序,它可以被浏览器执行,提供动态的、交互式的网页内容...

    A-S.rar_servlet applet

    本案例中,"A-S.rar_servlet applet"是一个示例项目,展示了如何利用序列化对象在Servlet和Applet之间进行通信,这对于理解Java网络编程以及Web应用程序的交互机制具有很高的学习价值。 首先,让我们深入了解一下...

Global site tag (gtag.js) - Google Analytics