gaglioppo
18-05-2006, 00:58
ciao amici,
questo è un problema per metà html e per metà java.
Fino ad ora sono sempre riuscito a compilare attraverso java una form html e ottenere il risultato sotto forma di pagine html.
usavo il metodo doPost(url,props) trovato sul libro della mcgrawhill.
public static synchronized String doPost(URL url, Properties nameValuePairs)
throws IOException {
URLConnection connection = url.openConnection();
connection.setDoOutput(true);
PrintWriter out = new PrintWriter(connection.getOutputStream());
Enumeration enum2 = nameValuePairs.keys();
while (enum2.hasMoreElements()) {
String name = (String) enum2.nextElement();
String value = nameValuePairs.getProperty(name);
char ch;
if (enum2.hasMoreElements())
ch = '&';
else
ch = '\n';
out.print(name + "=" + URLEncoder.encode(value, "UTF-8") + ch);
}
out.close();
BufferedReader in;
try {
in = new BufferedReader(new InputStreamReader(connection
.getInputStream()));
} catch (FileNotFoundException exception) {
InputStream err = ((HttpURLConnection) connection).getErrorStream();
if (err == null)
throw exception;
in = new BufferedReader(new InputStreamReader(err));
}
StringBuffer response = new StringBuffer();
String line;
while ((line = in.readLine()) != null)
response.append(line + "\n");
in.close();
return response.toString();
}
in pratica creavo un file properties del tipo:
#prova.form
#Tue May 16 16:04:39 BST 2006
URL=http\://swissmodel.expasy.org/cgi-bin/blastexpdb.cgi
sequence=
email=
e mi bastava completare i campi SEQUENCE ed EMAIL e ottenevo la mia pagina html risultato usando il metodo doPost.
Ora però ho a che fare con campi di input di tipo RADIO e CHECKBOX e nn so come comportarmi, come vanno settati nel file di proprietà?
In particolare ho una pagina html con:
<INPUT TYPE=radio NAME=hits VALUE=top CHECKED> Report top
<INPUT TYPE=radio NAME=hits VALUE=zscore>
<INPUT TYPE=text NAME=zn VALUE=5.0 SIZE=3 MAXLENGTH=3>
<INPUT TYPE=checkbox NAME=rtn_casp>
<INPUT TYPE=checkbox NAME=sa_align>
<INPUT TYPE=checkbox NAME=act_mpidcut CHECKED>
<INPUT TYPE=checkbox NAME=combine>
ho provato facendo:
hits=top
zn=5.0
act_mpidcut=on
combine=off
rtn_casp=off
sa_align=off
ma niente!
questo è un problema per metà html e per metà java.
Fino ad ora sono sempre riuscito a compilare attraverso java una form html e ottenere il risultato sotto forma di pagine html.
usavo il metodo doPost(url,props) trovato sul libro della mcgrawhill.
public static synchronized String doPost(URL url, Properties nameValuePairs)
throws IOException {
URLConnection connection = url.openConnection();
connection.setDoOutput(true);
PrintWriter out = new PrintWriter(connection.getOutputStream());
Enumeration enum2 = nameValuePairs.keys();
while (enum2.hasMoreElements()) {
String name = (String) enum2.nextElement();
String value = nameValuePairs.getProperty(name);
char ch;
if (enum2.hasMoreElements())
ch = '&';
else
ch = '\n';
out.print(name + "=" + URLEncoder.encode(value, "UTF-8") + ch);
}
out.close();
BufferedReader in;
try {
in = new BufferedReader(new InputStreamReader(connection
.getInputStream()));
} catch (FileNotFoundException exception) {
InputStream err = ((HttpURLConnection) connection).getErrorStream();
if (err == null)
throw exception;
in = new BufferedReader(new InputStreamReader(err));
}
StringBuffer response = new StringBuffer();
String line;
while ((line = in.readLine()) != null)
response.append(line + "\n");
in.close();
return response.toString();
}
in pratica creavo un file properties del tipo:
#prova.form
#Tue May 16 16:04:39 BST 2006
URL=http\://swissmodel.expasy.org/cgi-bin/blastexpdb.cgi
sequence=
email=
e mi bastava completare i campi SEQUENCE ed EMAIL e ottenevo la mia pagina html risultato usando il metodo doPost.
Ora però ho a che fare con campi di input di tipo RADIO e CHECKBOX e nn so come comportarmi, come vanno settati nel file di proprietà?
In particolare ho una pagina html con:
<INPUT TYPE=radio NAME=hits VALUE=top CHECKED> Report top
<INPUT TYPE=radio NAME=hits VALUE=zscore>
<INPUT TYPE=text NAME=zn VALUE=5.0 SIZE=3 MAXLENGTH=3>
<INPUT TYPE=checkbox NAME=rtn_casp>
<INPUT TYPE=checkbox NAME=sa_align>
<INPUT TYPE=checkbox NAME=act_mpidcut CHECKED>
<INPUT TYPE=checkbox NAME=combine>
ho provato facendo:
hits=top
zn=5.0
act_mpidcut=on
combine=off
rtn_casp=off
sa_align=off
ma niente!