sukoy27k
06-12-2005, 17:08
Ecco il metodo che invoco per sendare e ricevere dall'applet:
private void Send(String args[]){
try {
System.out.print("invio in corso");
URL a = new URL("http://127.0.0.1:8080/UserCheck");
HttpURLConnection connection = (HttpURLConnection) a.openConnection();
connection.setUseCaches(false);
connection.setDefaultUseCaches(false);
connection.setRequestMethod("POST");
connection.setDoOutput(true);
PrintWriter out = new PrintWriter(connection.getOutputStream());
ObjectInputStream is = new ObjectInputStream (connection.getInputStream());
String param = "name="+URLEncoder.encode(UserNameTextField.getText(), "UTF-8");
out.println(param);
Object ret=is.readObject();
out.close();
is.close();
UserNameTextField.setText((String)ret);
}catch(IOException e){
System.err.println("Errore nell'invio-ricezione dati con post");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
la servlet a cui deve connettersi l'ho testata attraverso un form html e risponde bene,però se al posto del browser cerco di inoltrare la richiesta dall'applet per l'appunto non succede nulla.
Sono alle prime armi e non avendo la possibilità di debbugare nulla,non so esattamente dove si perde la connessione.
ecco il codice del metodo dopost overrides:
protected void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
String name=(String)request.getParameter("name");
//String password=(String)request.getParameter("password");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0); // Dice di scadere il January 1, 1970, 00:00:00 GMT
response.setHeader("Pragma","No-cache");
String s=name+"OK";
ObjectOutputStream oos = new ObjectOutputStream(response.getOutputStream());
oos.writeObject(s);
oos.flush();
oos.close();
per quanto ne sò ho castato Object a string in quanto entrambi serializzabili (insieme a vector,giusto? ).
non ho postato il resto del codice,in quanto è solo roba di interfaccia e conessioni jdbc.
il servlet engine che utilizzo e ovviamente tomcat,il server http è apache.quando inoltro una richiesta alla servlet via html,è perfettamente in grado di trovare il .class all'interno di webbapps-root-web-inf-classes,per cui ho pensato che l'url alla servlet corretto fosse http://127.0.0.1:8080/UserCheck in quanto nella form html il path relativo che assegno è /UserCheck equivalente al primo assoluto.
bho non sò,che mi dite?
private void Send(String args[]){
try {
System.out.print("invio in corso");
URL a = new URL("http://127.0.0.1:8080/UserCheck");
HttpURLConnection connection = (HttpURLConnection) a.openConnection();
connection.setUseCaches(false);
connection.setDefaultUseCaches(false);
connection.setRequestMethod("POST");
connection.setDoOutput(true);
PrintWriter out = new PrintWriter(connection.getOutputStream());
ObjectInputStream is = new ObjectInputStream (connection.getInputStream());
String param = "name="+URLEncoder.encode(UserNameTextField.getText(), "UTF-8");
out.println(param);
Object ret=is.readObject();
out.close();
is.close();
UserNameTextField.setText((String)ret);
}catch(IOException e){
System.err.println("Errore nell'invio-ricezione dati con post");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
la servlet a cui deve connettersi l'ho testata attraverso un form html e risponde bene,però se al posto del browser cerco di inoltrare la richiesta dall'applet per l'appunto non succede nulla.
Sono alle prime armi e non avendo la possibilità di debbugare nulla,non so esattamente dove si perde la connessione.
ecco il codice del metodo dopost overrides:
protected void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
String name=(String)request.getParameter("name");
//String password=(String)request.getParameter("password");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0); // Dice di scadere il January 1, 1970, 00:00:00 GMT
response.setHeader("Pragma","No-cache");
String s=name+"OK";
ObjectOutputStream oos = new ObjectOutputStream(response.getOutputStream());
oos.writeObject(s);
oos.flush();
oos.close();
per quanto ne sò ho castato Object a string in quanto entrambi serializzabili (insieme a vector,giusto? ).
non ho postato il resto del codice,in quanto è solo roba di interfaccia e conessioni jdbc.
il servlet engine che utilizzo e ovviamente tomcat,il server http è apache.quando inoltro una richiesta alla servlet via html,è perfettamente in grado di trovare il .class all'interno di webbapps-root-web-inf-classes,per cui ho pensato che l'url alla servlet corretto fosse http://127.0.0.1:8080/UserCheck in quanto nella form html il path relativo che assegno è /UserCheck equivalente al primo assoluto.
bho non sò,che mi dite?