在我的项目中 我使用了三层架构 在客户端使用嵌入网页中的applet完成客户端逻辑 在服务端的TOMcat中有个servlet 负责处理客户端传送来的数据 applet向servlet 发送post消息 由servlet的dopost()函数处理 但是现在的问题是好像客户端发送了请求以后servlet没有响应 大家帮我看看出了什么问题了 我现在没有什么头绪 程序上看也没有什么问题 大家给我点意见 任何意见都欢迎 谢谢了 代码我贴在底下了 数据传输的类我就不贴出来了 就把applet和servlet代码贴在下面package test2;import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import java.sql.*;
import javax.swing.border.*;
import java.applet.Applet;
import java.util.*;
import java.io.*;
import java.net.*;
import java.sql.*;public class Applet1 extends Applet {
  private boolean isStandalone = false;
  JButton jButton1 = new JButton();
  //Get a parameter value
  public String getParameter(String key, String def) {
    return isStandalone ? System.getProperty(key, def) :
      (getParameter(key) != null ? getParameter(key) : def);
  }  //Construct the applet
  public Applet1() {
  }
  //Initialize the applet
  public void init() {
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  //Component initialization
  private void jbInit() throws Exception {
    jButton1.setText("jButton1");
    jButton1.addActionListener(new Applet1_jButton1_actionAdapter(this));
    this.add(jButton1, null);
  }
  //Get Applet information
  public String getAppletInfo() {
    return "Applet Information";
  }
  //Get parameter info
  public String[][] getParameterInfo() {
    return null;
  }  void jButton1_actionPerformed(ActionEvent e) {
   String hostName = "10.243.4.203";
   int port = 8080;
   String servletPath = "/servlet1";
   String webServerStr = "http://" + hostName + ":" + port + servletPath;
   try
   {
     URL testServlet = new URL( webServerStr);
    URLConnection servletConnection = testServlet.openConnection();
    servletConnection.setDoInput(true);
    servletConnection.setDoOutput(true);
    servletConnection.setUseCaches (false);
    servletConnection.setRequestProperty("Content-Type", "application/octet-stream");
    data dat1=new data(1);
    sendToServlet(servletConnection, dat1);   }
   catch(Exception ee)
   {
     ee.printStackTrace();
   }
  }
  protected void sendToServlet(URLConnection servletConnection, data pa)
{
 ObjectOutputStream outputToServlet = null;
    try
    {
     outputToServlet = new ObjectOutputStream(servletConnection.getOutputStream());
     outputToServlet.writeObject(pa);
     outputToServlet.flush();
     outputToServlet.close();
   }
   catch (IOException e)
   {
       e.printStackTrace();
   }
}}class Applet1_jButton1_actionAdapter implements java.awt.event.ActionListener {
  Applet1 adaptee;  Applet1_jButton1_actionAdapter(Applet1 adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jButton1_actionPerformed(e);
  }
}
SERVLET
package test2;import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;public class Servlet1 extends HttpServlet {
  private static final String CONTENT_TYPE = "text/html; charset=GBK";
  //Initialize global variables
  public void init() throws ServletException {
  }
  //Process the HTTP Get request
  public void doGet(HttpServletRequest Req, HttpServletResponse response) throws ServletException, IOException {
  }
  //Process the HTTP Post request
  public void doPost(HttpServletRequest Req, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType(CONTENT_TYPE);
    try {
    ObjectInputStream inputFromApplet = null;
    PrintWriter out = null;
    inputFromApplet = new ObjectInputStream(Req.getInputStream());
    data rp=null;
    rp = (data) inputFromApplet.readObject();
    inputFromApplet.close();
    if (rp.getindex()==1) {
      File infile = new File("x:\\out1.txt");
      try {
        try {
          infile.createNewFile();
          FileOutputStream datafileout = new FileOutputStream(
              infile, true);
          PrintStream dataout = new PrintStream(datafileout);
          dataout.println("out");
          dataout.flush();
          dataout.close();
        }
        catch (Exception e) {
          e.printStackTrace();
        }      }
      catch (Exception e) {
        e.printStackTrace();
      }
    }
  }
  catch(Exception e)
  {
    e.printStackTrace();
  }  }
  //Clean up resources
  public void destroy() {
  }
}

解决方案 »

  1.   

    不清楚你的数据 怎么回事情
    我看到 连接数据库写到 APPLET 里面
    我认为应该写到 SERVLET 里面
    请求过来  不连数据库 怎么有图形产生
      

  2.   

    这个applet 里面不连接数据库 他的主要功能就是点击了一个按钮以后发送一个数据包就是data 到servlet 然后servlet根据数据包的内容在本地的一个硬盘里写入文件 webServerStr是servlet在服务器上的路径 不过好像我单步调试的时候发现好像servlet 没有收到post消息 不知道怎么回事 不过还是谢谢楼上的建议 大家还能给我点别的线索吗