| |
sendapplet.java
import java.applet.applet; import java.awt; import java.net.*; import java.io.*; public class sendapplet extends applet { lable sendlable; lable messageinfor; button sendbutton; textfield messagetext; textfield sendtext; urlconnection connect; string message; public string getappletinfo() { return "sendapplet - applet to communicate with receiveservlet , written by ding;"; } public synchronized void init() { super.init(); resize(500,300); sendlable = new lable("please enter massage"); messageinfor = new lable("what you have send:"); sendbutton = new button("send"); sendtext = new textfield(40); messagetext = new textfield(40); messagetext.seteditable(false);
//下面实现一个panel panel mainp = new panel(); gridbaglayout gbl = new gridbaglayout(); gridbagconstraints gbc = new gridbagconstraints(); gbc.weightx = 0; gbc.weighty = 0; gbc.gridx = 0; gbc.gridy = 0; gbc.gridwidth = 10; gbc.gridheight= 1; gbc.anchor = gridbagconstraints.center; gbc.fill = gridbagconstraints.none; mainp.setlayout(gbl); gbl.setconstrains(sendable,gbc); mainp.add(sendlable); gbc.gridy = 1; gbc.gridwidth = 9; gbc.fill = gridbagconstraints.horizontal; gbl.setconstraints(sendtext,gbc); mainp.add(sendtext); gbc.gridx = 9; gbc.gridwidth = 1; gbc.fill = gridbagconstraints.none; gbl.setconstraints(sendbutton,gbc); mainp.add(sendbutton); gbc.gridx = 0; gbc.gridy = 2; gbc.gridwidth = 10; gbl.setconstraints(messageinfo,gbc); mainp.add(messageinfo); gbc.gridy = 3; gbc.weighty = 100; gbc.gridheight = 10; gbc.fill = gridbagconstraints.both; gbl.setconstraints(messagetext,gbc); mainp.add(messagetext);
//把实现的panel加入applet setlayout(new borderlayout()); add("center",mainp);
chaturl = getcodebase(); }
public synchronized void start() { }
public synchronized void stop() { }
public synchronized void destroy() { } //方法send 把用户在applet 中输入的字符串送给servlet //然后把servlet 的处理结果显示出来 private void send() { message = sendtext.gettext(); //清除用户的输入信息 sendtext.settext(""); showstatus("message send!"); //把输入的字符串转化为 x-www-form-urlencoded 格式 string querystring = "/servlet/receiveservlet?message="+urlencoder.encode(message); p("attempting to send:"+message);
//建立与servlet的联接,并取得servelt的输出信息 try { connect = (new url(chaturl,querystring)).openconnection(); showstatus("open connection!"); //下次连接不用cache connect.setdefaultusecaches(false); //这次连接也不用cache connect.setusecaches(false); //打开?流用于读数据 connect.setdoinput(true); //不能用于写数据 connect.setdooutput(false); //服务器与客户的真正连接 connect.connect(); p("made connection to "+connect); showstatus("open stream!"); datainputstream in = new datainputstream(connect.getinputstream()); showstatus("reading!"); message = in.readline();
while (message! = null) { messagetext.settext(message); message = in.readline(); }
} catch(malformedurlexception e2) { system.err.println("malformedurlexception!"); e2.printstacktrace(system.err); showstatus("malformedurlexception!"); } catch(ioexception e1) { system.err.println("ioexception!"); e2.printstacktrace(system.err); showstatus("ioexception"); } } }
//applet 对用户的动作作处理。 public boolean action(event evt,object arg) { if (evt.target == sendbutton) { send(); return true; } return super.action(evt,arg); }
private void p(string debug) { system.err.println("app-serv-let:"+debug); } }
/////////////////////////////////////////// receiveservlet.java import java.io.*; import java.util.date;
import javax.servlet.*; import javax.servlet.http.*;
public class receiveservlet extends httpservlet { public void service (httpservletrequest req,httpservletresponse res) throws servletexception,ioexception { res.setcontenttype("text/plain"); servletoutputstream out = res.getoutputstream(); out.print("receive user message:"); out.print("req.getparameter("message")); }
public string getservletinfo() { return "return a string representation of the current time"; } }
|
|