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";
}
}
闽公网安备 35060202000074号