Buona sera ho il problema su come aggiornare un file.txt tramite una servlet.
Il fatto è che se inserisco il path assoluto funziona , ma visto che non deve girare solo sul mio pc non è una soluzione efficiente . Il metodo getAbsoluteFile().getPath() mi restituisce un path diverso dal reale (è commentato nel codice quello che stampa)
Come posso fare ?
servlet
codice:
@WebServlet("/ClienteRegistrazione")
public class ClienteRegistrazione extends HttpServlet {
private static final long serialVersionUID = 1L;
static ClienteModelDM model = new ClienteModelDM();
public ClienteRegistrazione() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int flag = 0;
String n = request.getParameter("nome");
String c = request.getParameter("cognome");
String u = request.getParameter("username");
String p = request.getParameter("password");
String e = request.getParameter("email");
String s = request.getParameter("sesso");
String cell = request.getParameter("cellulare");
int gg = Integer.parseInt(request.getParameter("giorno"));
System.out.println(""+gg);
int mm = Integer.parseInt(request.getParameter("mese"));
System.out.println(""+mm);
int aa = Integer.parseInt(request.getParameter("anno"));
System.out.println(""+aa);
//String data = "'"+aa+"-"+mm+"-"+gg+"'";
String filename = "db/login.txt";
ServletContext context = getServletContext();
System.out.println("il file esiste");
// System.out.println("il path: "+file.getAbsoluteFile().getPath());
FileInputStream in = (FileInputStream) context.getResourceAsStream(filename);
InputStreamReader isr = new InputStreamReader(in);
BufferedReader reader = new BufferedReader(isr);
String text = "";
System.out.println("lo leggo");
System.out.println("prima "+text);
while ((text = reader.readLine()) != null) {
System.out.println(""+text);
String user =reader.readLine();
String word =reader.readLine();
System.out.println(""+user);
System.out.println(""+word);
if(user.equals(u)){
flag=1;
System.out.println("esistente");
} }
in.close();isr.close();reader.close();
System.out.println(" flag = "+flag);
if(flag ==0){
System.out.println("scrittura");
File file = new File(filename);
System.out.println("ciO = "+file.getAbsoluteFile().getPath());
//mi stampa questo pathD:\desktop\eclipse\db\login.txt
PrintWriter out = new PrintWriter(
new FileOutputStream(file.getAbsoluteFile().getPath(),true));
//cosi non funziona
PrintWriter out = new PrintWriter(
new FileOutputStream(D:/desktop/workspace HTML/_PROGETTO PROGRAMMAZIONE WEB/WebContent/db/login.txt,true));
//cosi funziona
out.println(u);
out.println(p);
out.close();
Cliente cliente = new Cliente();
cliente.setNome(n);
cliente.setCognome(c);
cliente.setUsername(u);
cliente.setEmail(e);
cliente.setPassword(p);
cliente.setSesso(s);
cliente.setCellulare(cell);
cliente.setDataNascita(new GregorianCalendar(aa,mm,gg));
/*
try {
model.doSave(cliente);
} catch (SQLException e1) {
e1.printStackTrace();
}*/
response.setContentType("text/html");
PrintWriter out2 = response.getWriter();
String title = "Reading Three Request Parameters";
String docType =
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
"Transitional//EN\">\n";
out2.println(docType +
"<HTML>\n" +
"<HEAD><TITLE>" + title + "</TITLE></HEAD>\n" +
"<BODY BGCOLOR=\"#FDF5E6\">\n" +
"<H1 ALIGN=\"CENTER\">" + title + "</H1>\n" +
"<UL>\n" +
" <LI><B>nome</B>: "
+ request.getParameter("nome") + "\n" +
" <LI><B>cognome</B>: "
+ request.getParameter("cognome") + "\n" +
" <LI><B>user</B>: "
+ request.getParameter("username") + "\n" +
" <LI><B>email</B>: "
+ request.getParameter("email") + "\n" +
" <LI><B>pass</B>: "
+ request.getParameter("password") + "\n" +
" <LI><B>cell</B>: "
+ request.getParameter("cellulare") + "\n" +
" <LI><B>cf</B>: "
+ request.getParameter("sesso") + "\n" +
" <LI><B>data</B>: "
+ cliente.getDataNascitaStr()+ "\n" +
"</UL>\n" +
"</BODY></HTML>");}
else{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "Reading Three Request Parameters";
String docType =
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
"Transitional//EN\">\n";
out.println(docType +
"<HTML>\n" +
"<HEAD><TITLE>" + title + "</TITLE></HEAD>\n" +
"<BODY BGCOLOR=\"#FDF5E6\">\n" +
"<H1 ALIGN=\"CENTER\">" + title + "</H1>\n" +
" USERNAME ESISTENTE"+
"</BODY></HTML>");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
html
codice HTML:
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>REGISTRATI SU AMERICAN !</title><style>p{display :inline; color :red ;}</style> <script src="script/val.js" type="text/javascript"></script>
</head><body>
<form name="reg" id="registrazione" method="post" onsubmit="return validazione()" action ="ClienteRegistrazione">
Nome: <input type = "text" name = "nome" onblur="valNome()">* <p id="mn"></p> <br> <br>
Cognme: <input type = "text" name = "cognome" onblur="valCognome()">* <p id="mc"></p> <br> <br>
Username: <input type = "text" name = "username" onblur="valUsername()">* <p id="mu"></p> <br> <br>
Password: <input type = "password" name = "password" onblur="valPassword()" >* <p id="mp"></p><br> <br>
Email: <input type = "email" name = "email" onblur="valEmail()" >* <p id="me"></p> <br> <br>
Cellulare: <input type = "text" name = "cellulare" onblur="valTel()">* <p id="mcell"></p> <br> <br>
Sesso:* <br>M:<input type = "radio" name = "sesso" value="M" > F:<input type = "radio" name = "sesso" value="F"> <p id="ms"></p> <br><br> Data Di Nascita :* <br>GIORNO: <select name ="giorno"><option value="00"> </option><option value="01">01</option><option value="02">02</option><option value="03">03</option><option value="04">04</option><option value="05">05</option><option value="06">06</option><option value="07">07</option><option value="08">08</option><option value="09">09</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option></select>
MESE: <select name ="mese"><option value ="00"> </option><option value="0">01</option><option value="1">02</option><option value="2">03</option><option value="3">04</option><option value="4">05</option><option value="5">06</option><option value="6">07</option><option value="7">08</option><option value="8">09</option><option value="9">10</option><option value="10">11</option><option value="11">12</option></select>
ANNO:<select name ="anno"><option value ="00"> </option><option value="1936">1936</option><option value="1937">1937</option><option value="1938">1938</option><option value="1939">1939</option><option value="1940">1940</option><option value="1941">1941</option><option value="1942">1942</option><option value="1943">1943</option><option value="1944">1944</option><option value="1945">1945</option><option value="1946">1946</option><option value="1947">1947</option><option value="1948">1948</option><option value="1949">1949</option><option value="1950">1950</option><option value="1951">1951</option><option value="1952">1952</option><option value="1953">1953</option><option value="1954">1954</option><option value="1955">1955</option><option value="1956">1956</option><option value="1957">1957</option><option value="1958">1958</option><option value="1959">1959</option><option value="1960">1960</option><option value="1961">1961</option><option value="1962">1962</option><option value="1963">1963</option><option value="1964">1964</option><option value="1965">1965</option><option value="1966">1966</option><option value="1967">1967</option><option value="1968">1968</option><option value="1969">1969</option><option value="1970">1970</option><option value="1971">1971</option><option value="1972">1972</option><option value="1973">1973</option><option value="1974">1974</option><option value="1975">1975</option><option value="1976">1976</option><option value="1977">1977</option><option value="1978">1978</option><option value="1979">1979</option><option value="1980">1980</option><option value="1981">1981</option><option value="1982">1982</option><option value="1983">1983</option><option value="1984">1984</option><option value="1985">1985</option><option value="1986">1986</option><option value="1987">1987</option><option value="1988">1988</option><option value="1989">1989</option><option value="1990">1990</option><option value="1991">1991</option><option value="1992">1992</option><option value="1993">1993</option><option value="1994">1994</option><option value="1995">1995</option><option value="1996">1996</option><option value="1997">1997</option><option value="1998">1998</option><option value="1999">1999</option><option value="2000">2000</option><option value="2001">2001</option><option value="2002">2002</option><option value="2003">2003</option><option value="2004">2004</option><option value="2005">2005</option><option value="2006">2006</option> </select><p id="mdata"></p>
<br><br><input type="submit" value="invia" >
</form>
</body></html>