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">&nbsp;</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">&nbsp;</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">&nbsp;</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>