当前位置:  技术问答>java相关

在线——高分求救,关于APPLET与SERVLET的通信

    来源: 互联网  发布时间:2015-05-10

    本文导语:  谁有APPLET与SERVLET之间传输对象的例子/? 在线等待,立即结帐! | 你的代码太长,我也不想看。就给你谈谈我以前做的一个项目吧。 前台:Applet,中间层:Servlet、JDBC,数据库:SQL Server。 1...

谁有APPLET与SERVLET之间传输对象的例子/?
在线等待,立即结帐!

|
你的代码太长,我也不想看。就给你谈谈我以前做的一个项目吧。
前台:Applet,中间层:Servlet、JDBC,数据库:SQL Server。
1、Applet和Servlet之间建立URLConnection,通过连接获取输入流、输出流对象。
2、Applet发送请求。
3、Servlet访问SQL Server,获取数据,将数据组装成对象。
4、Servlet将对象发送到Applet。
5、Applet操作对象。
一点问题也没有,你的问题出在1-5中哪一步?
在线回答,仅限今天上午。

|
这里有一个例子,applet向servlet传一个对象,servlet收到后发一个回执给applet。

applet端程序:
try {
  URL urlSave = new URL(getCodeBase(), "/wmc/ProcessSaver");
  HttpURLConnection conn = (HttpURLConnection)urlSave.openConnection();
  conn.setDoOutput(true);
  ObjectOutputStream objOut = new ObjectOutputStream(conn.getOutputStream());
  objOut.writeObject(procItem);
  objOut.flush();
  objOut.close();
  if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
    System.err.println("Http error!");
  }
  DataInputStream dataIn = new DataInputStream(conn.getInputStream());
  int id = dataIn.readInt();
  dataIn.close();
} catch (Exception e) {
  e.printStackTrace();
}

servlet端程序:
try {
  ObjectInputStream objIn = new ObjectInputStream(req.getInputStream());
  ProcessItem procItem = (ProcessItem)objIn.readObject();
  objIn.close();
  DataOutputStream dataOut = new DataOutputStream(res.getOutputStream());
  dataOut.writeInt(id);
  dataOut.flush();
  dataOut.close();
} catch (Exception e) {
  System.out.println(e.getMessage());
}

|
import java.io.*;
import java.awt.*;
import java.applet.*;

public class DataBaseApplet extends Applet implements Runnable
{
  int i;
  String response;
  Thread theThread;

  TextArea messInfo=new TextArea("",16,45);
  TextField txtDbIP=new TextField(30)
  ,txtPort=new TextField(4)
  ,txtUID=new TextField(10)
  ,txtPass=new TextField(10)
  ,txtSql=new TextField(30);
  Button btnConnect=new Button("Connect");

  public void init()
  {

this.setSize(500,300);

setLayout(new BorderLayout());
Panel mainPanel=new Panel();
Panel panel1=new Panel();
Panel panel2=new Panel();
Panel panel3=new Panel();

messInfo.setEditable(false);
add("North",messInfo);
//add("North",panel1);

panel2.add(new Label("DB IP:"));
panel2.add(txtDbIP);
panel2.add(new Label("Port:4444"));
panel2.add(txtPort);
add("Center",panel2);

panel3.add(new Label("username:"));
panel3.add(txtUID);
panel3.add(new Label("password:"));
panel3.add(txtPass);
panel3.add(btnConnect);
add("South",panel3);

theThread=new Thread(this);
  }    

  public void start()
  {
theThread.start();
  }    

  public void run()
  {

while(true)
{
  i++;
  this.req();

  // Graphics g=getGraphics();
  //g.drawString("read from server:"+this.response,10,20*i);
  //g.dispose();
  this.messInfo.append("read from server:"+this.response);
  try
  {
theThread.sleep(2000);
  }
  catch(InterruptedException e){}
}

  }      

  public void req()
  {
try
{
  java.net.URL url=
new java.net.URL(getDocumentBase(),"/servlet/DataBaseServlet");
  System.out.println("getDocumentBase(): "+getDocumentBase());
  java.net.URLConnection con = url.openConnection();
  con.setUseCaches(false);
  con.setDoOutput(true);
  con.setDoInput(true);
  
  ByteArrayOutputStream byteout=new ByteArrayOutputStream();
  DataOutputStream out=new DataOutputStream(byteout);
  out.writeUTF("Hello world!?");
  out.flush();
  
  byte buf[]=byteout.toByteArray();
  con.setRequestProperty("Content-type","application/octet-stream");
  con.setRequestProperty("Content-length",""+buf.length);
  
  DataOutputStream dataout=new DataOutputStream(con.getOutputStream());
  dataout.write(buf);
  dataout.flush();
  dataout.close();

  DataInputStream in=new DataInputStream(con.getInputStream());
  this.response=in.readUTF();
  //repaint();
  //System.out.println("read from server:"+response);

  in.close();
}
//catch(java.net.MalformedURLException e){}
catch(Exception e){
e.printStackTrace();
}
  }              

  public void paint(Graphics g)
  {
//g.drawString("read from server:"+this.response,10,20);
  }    
}
-------------------------------------------------------
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;


import javax.naming.*;import javax.sql.*;
public class DataBaseServlet extends HttpServlet{
  String respData;
  public void service(HttpServletRequest req,HttpServletResponse resp)
  {
try
{
  DataInputStream in=new DataInputStream(req.getInputStream());
  resp.setContentType("application/octet-stream");
  ByteArrayOutputStream byteout=new ByteArrayOutputStream();
  DataOutputStream out=new DataOutputStream(byteout);
  this.getDbData();
  String response=in.readUTF()+" "+this.respData+" "+this.nowTime()+"n";
  System.out.println(response);
  out.writeUTF(response);
  out.flush();
  byte buf[]=byteout.toByteArray();
  resp.setContentLength(buf.length);
  ServletOutputStream servletout=resp.getOutputStream();
  servletout.write(buf);
  servletout.close();
}
catch(java.io.IOException e){
e.printStackTrace();
}
  }                


  public void getDbData()
  {

  try
  {

String url="jdbc:microsoft:sqlserver://10.0.0.1:1433;DatabaseName=HKISC1103";
String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";

   Class.forName(driver).newInstance();

   String login = "boom";
  String password = "password";
  Connection con=DriverManager.getConnection(url,login,password);

   Statement st = con.createStatement();
   ResultSet rs = st.executeQuery("SELECT * FROM customer");

   rs.next();
   this.respData=String.valueOf(rs.getInt("cust_id"))+"tttt";

   st.close();
   con.close();

  }
catch(java.sql.SQLException e){System.out.println(e.toString());}
catch(java.lang.ClassNotFoundException e){System.out.println(e.toString());}
catch(java.lang.InstantiationException e){System.out.println(e.toString());}
catch(java.lang.IllegalAccessException e){System.out.println(e.toString());}
  }            



  public String nowTime()
  {
java.util.Calendar currTimeCal=java.util.Calendar.getInstance();
int currDate=currTimeCal.get(Calendar.DATE);
int currYear=currTimeCal.get(Calendar.YEAR);
int currMonth=currTimeCal.get(Calendar.MONTH);
int currHour=currTimeCal.get(Calendar.HOUR_OF_DAY);
int currMinute=currTimeCal.get(Calendar.MINUTE);
int currSecond=currTimeCal.get(Calendar.SECOND);

String currTime=String.valueOf(currYear)
  +"-"+String.valueOf(currMonth)
  +"-"+String.valueOf(currDate)
  +":"+String.valueOf(currHour)
  +":"+String.valueOf(currMinute)
  +":"+String.valueOf(currSecond);


return currTime;
  }    
}

|
对, sojkey的代码和我以前做的项目代码非常相似。

    
 
 

您可能感兴趣的文章:

  • 急救:关于BLOB数据类型---在线等待,高分相送!
  • 求UNIXWARE7.11的原版下载,高分相赠,在线等待!!!
  • Linux下无法启动apache 高分求救!在线等待
  • 有谁知道linux操作系统察看cpu使用率的命令,回答正确给高分,急,在线等待!!!
  • 新手的求助,高分,在线等待
  • linux下的vi中的乱码问题(急急急,在线等待!!!!!!,解决问题给高分)
  • 高分征解(在线等待),有谁能提供DOS下双机互连的工具LanLink5.0 。
  • 迫切、紧急、高分求购......在线等待!
  • 高分在线求救!!!
  • linux上的媒体播放(高分在线求解)
  • 请问谁知道mydns服务程序在哪里可以下载到?(高分,在线等)
  • 高分求IBM AS400资料,在线
  • ftp 命令请教, 在线等候, 高分相送
  • 高分求救:Linux下如何改变Ramdisk大小!急!!在线等待!!!
  • 高分求助在线等...连接池的问题
  • 高分相送 unresolved symbol printk 出错~,在线等待
  • 高分求助,在线等
  • 高分求救!!!关于makefile问题。急!!!在线等!!!
  • 高分在线求救!!!!!!!!
  • 今天在线,哪位大虾来指点,高分回报,不够再发帖补....
  • 关于jdbc,求救求救!在线等待,马上给分
  • SUSE网络打印机问题,在线等,求救!!
  • 求救,在JSP中怎么实现在线人数统计!!
  • 找不到编译器????????求救::在线等待!
  • 高手请进!!!在线求救!!!!**
  • 求救:这句话是什么意思?在线等待
  • 散分求救!急!在线等待
  • 求救,在线等!!!!!!!!!!
  • 在线求救!!!如果在JSP页面之间传递多个参数?
  • 200分求救:关于OpenNMS。在线等!!!:)
  • 紧急求救,在线等待 100分不够再加
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • jserv与iis集成后,怎样使jserv支持servlet?servlet的class文件应该放在哪了?急!在线等待
  • 如何在jsp调用Servlet?在线等待。
  • 如何编译Servlet程序,我在JDK下编译不成(在线等)
  • Tomcat下在Applet里调用Servlet怎么写URL?在线给分,急!
  • tomcat下servlet无法运行,但是jsp可以运行,在线等待。。。
  • 如何把几个参数从jsp中传到一个servlet中呀?在线等待!!!!!!!
  • 请问高手:web中如何把多选的select表单中的数据提交到servlet中?(在线等)
  • 我怎么没有在java的开发文档看到 Javax.servlet的开发包?在线等...........
  • c/c++开源软件 iis7站长之家
  • servlet的问题(在线给分)
  • 为什么我的Jdk_doc里面没有Servlet的帮助?在线等。
  • 有关servlet的概念令我大惑不解,请高手点化!在线等待!
  • 100分,servlet在线求助
  • 如何在tomcat4。1上让自己的servlet运行?急急急啊(在线等待)
  • servlet 的入门级问题,在线等待高手指点,散分
  • 小弟想比较系统的学习一下Servlet,可是找不到全面系统一点的书或者资料,谁能给我推荐?在线等待结帖。
  • 请大家帮我看看下面的web.xml的格式是否正确?(配置servlet)在线等待
  • 如何在Java Servlet程序中统计在线人数??
  • 我写了一个servlet--hello.hello,放在tomcat的web-inf/classes下,但不知该如何访问?在线等待
  • import javax.servlet.*;出错的问题,在线等待。100分
  • 基于Html5的mockups在线工具简介
  • 装MYSQL后启动错误! mysqld ended --在线急等!在线急等!在线急等!在线急等!-----
  • MyEclipse SVN插件SubEclipse 在线离线等几种安装方式介绍
  • 智能在线表单设计器 FreeForm智能在线表单设计器
  • Linux使用群24032501,保持20人在线,目标50人在线
  • 简单的输入输出问题 在线等待 在线给分
  • 怎么用能让asp实现统计在线人数的功能。在线等待!!!帮忙送分!
  • 在线求教, 为什么不能开始除root之外的用户登录??...很急, 在线等
  • 在线等,在线给分!(简单问题,急)
  • 我需要唯一用户在线,不能两个用户同时在线的JSP实现的设计文档
  • 在线等,在线给分!!!!!!!!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3