Передача нескольких параметров в связи апплет-сервлет - PullRequest
0 голосов
/ 19 мая 2011

Я реализую связь между апплетами и сервлетами. Есть два параметра, которые необходимо отправить апплетом сервлету. Я не уверен, могу ли я реализовать процесс передачи следующим образом? Если нет, то как обработать передачу, включающую несколько параметров? Спасибо.

Сторона апплета:

// send data to the servlet
             URLConnection con = getServletConnection(hostName);
             OutputStream outstream = con.getOutputStream();
             System.out.println("Send the first parameter");
             ObjectOutputStream oos1 = new ObjectOutputStream(outstream);
             oos1.writeObject(parameter1);
             oos1.flush();
             oos1.close();

             System.out.println("Send the second parameter");
             ObjectOutputStream oos2 = new ObjectOutputStream(outstream);
             oos2.writeObject(parameter2);
             oos2.flush();
             oos2.close();

Сторона сервлета:

    InputStream in1 = request.getInputStream();
    ObjectInputStream inputFromApplet = new ObjectInputStream(in1);
    String receievedData1 = (String)inputFromApplet.readObject();

    InputStream in2 = request.getInputStream();
    ObjectInputStream inputFromApplet = new ObjectInputStream(in2);
    String receievedData2 = (String)inputFromApplet.readObject();

1 Ответ

1 голос
/ 19 мая 2011

Для простоты следует использовать параметры HTTP GET или POST (поскольку они являются строковыми значениями).

Сторона апплета:

URL postURL = new URL("http://"+host+"/ServletPath");
HttpURLConnection conn = (HttpURLConnection) postURL.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.connect();

PrintWriter out = new PrintWriter(conn.getOutputStream());
out.write("param1="+URLEncoder.encode(parameter1)+"&param2="+URLEncoder.encode(parameter2));
out.flush();

Хост можно получить из getCodeBase().getHost() в вашем экземпляре апплета.

Сторона сервлета:

void doPost(HttpServletRequest req, HttpServletResponse resp) {
    String parameter1 = req.getParameter("param1");
    String parameter2 = req.getParameter("param2");
}
...