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
htmlcodice:@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); } }
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>

Rispondi quotando