Hi Leute, nachdem sich mein gestriges Problem ja quasi von selbst behoben hat (Glassfish ist manchmal etwas langsam, was das Erkennen von Neuerungen angeht), habe ich jetzt ein weiteres:
Das Applet stellt eine Eingabemaske dar. Nun will ich aber nicht die Daten im Applet kontrollieren lassen, sondern zum Servlet schicken, kontrollieren lassen und das Ergebnis zurücksenden an das Applet, ob es geklappt hat.
Ich weiß, dass es geht, nur wie ist jetzt die große Frage.
Anbei die Quellcodes:
Das ganze GUI-Gehabe habe ich außen vor gelassen, denn es funktioniert ja.
Lasst euch nicht von den FIles erschrecken, derzeit funktioniert es noch nicht, ist auch kein Muss. Wichtig ist erstmal die Passwort-Überprüfung.
Die Daten können dabei, da es ein Testsystem ist, auch im Servlet direkt abgelegt und initialisiert werden.
Servlet:
Danke schonmal für eure Unterstützung!
Das Applet stellt eine Eingabemaske dar. Nun will ich aber nicht die Daten im Applet kontrollieren lassen, sondern zum Servlet schicken, kontrollieren lassen und das Ergebnis zurücksenden an das Applet, ob es geklappt hat.
Ich weiß, dass es geht, nur wie ist jetzt die große Frage.

Anbei die Quellcodes:
Code:
// Anfang Ereignisprozeduren
public void jButton1_ActionPerformed(ActionEvent evt)
throws MalformedURLException, IOException{
if(jTextField1.getText().equals("admin")&&
jTextField2.getText().equals("adminadmin")){
jTextArea3.setText("Daten stimmen");
getServletConnection();
onSendData();
}else{
jTextArea3.setText("Daten stimmen nicht!");
}
}
public void jButton2_ActionPerformed(ActionEvent evt) {
JOptionPane.showMessageDialog(this,
"Bitte wenden Sie sich an den Administrator oder nutzen Sie google...");
}
public void jButton3_ActionPerformed(ActionEvent evt) {
//getServletConnection(con.close());
System.exit(0);
}
// Ende Ereignisprozeduren
//TO DO: close-methode abändern
private URLConnection getServletConnection()
throws MalformedURLException, IOException {
// Connection zum Servlet öffnen
URL urlServlet = new URL(getCodeBase(), "http://localhost:8080/CliServ/WEB-INF/classes/");
URLConnection con = urlServlet.openConnection();
// konfigurieren
con.setDoInput(true);
con.setDoOutput(true);
con.setUseCaches(false);
// und zurückliefern
return con;
}
/**
* Send the inputField data to the servlet and show the result in the outputField.
*/
private void onSendData() {
try {
// get input data for sending
String input1 = jTextField1.getText();
String input2 = jTextField2.getText();
// send data to the servlet
URLConnection con = getServletConnection();
OutputStream outstream = con.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(outstream);
oos.writeObject(input1);
oos.writeObject(input2);
oos.flush();
oos.close();
// receive result from servlet
InputStream instr = con.getInputStream();
ObjectInputStream inputFromServlet = new ObjectInputStream(instr);
String result = (String) inputFromServlet.readObject();
File f = new File("C:\\log.txt");
if(!f.exists()){
f.createNewFile();}
FileWriter fw = new FileWriter("log.txt", true);
fw.write(result);
RandomAccessFile raf = new RandomAccessFile("log.txt", "rw");
raf.writeChars(result);
fw.close();
inputFromServlet.close();
instr.close();
// show result
jTextArea3.setText(result);
} catch (Exception ex) {
ex.printStackTrace();
jTextArea3.setText(ex.toString());
}
}
}
Das ganze GUI-Gehabe habe ich außen vor gelassen, denn es funktioniert ja.
Lasst euch nicht von den FIles erschrecken, derzeit funktioniert es noch nicht, ist auch kein Muss. Wichtig ist erstmal die Passwort-Überprüfung.
Die Daten können dabei, da es ein Testsystem ist, auch im Servlet direkt abgelegt und initialisiert werden.
Servlet:
Code:
public class servlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = -1282283994096021301L;
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {response.setContentType("");
InputStream in = request.getInputStream();
ObjectInputStream inputFromApplet = new ObjectInputStream(in);
String input = (String) inputFromApplet.readObject();
request.equals("admin");
request.equals("adminadmin");
response.getWriter().println( "Daten übermittelt..." );
OutputStream outstr = response.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(outstr);
oos.writeObject(input);
oos.flush();
oos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Danke schonmal für eure Unterstützung!