Newsgroup: it.comp.java
Titolo: tomcat lettura file

voglio leggere il contenuto di un file di testo da una pagina jsp dove
il file di testo si trova nella cartella contex_path dove stanno le
altre jsp e poi visualizzarlo su un'altra pag jsp come faccio,credo
bastino poche righe di codice qualcuno sa aiutarmi grazie in anticipo

Sulle classi ServletContext e HttpServletRequest trovi tutti i metodi che ti
servono.
-- 
---
Francesco Galli / Cinghiale Mannaro
Personal: 
http://cinghialemannaro.splinder.com
TMS project: 
http://tms.inera.it

ho scritto questa pagina jsp:
<%@ page language="java" import="java.util.*,java.io.*" %>
<%!
private String p;
private int next;
private int nextc;
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'My.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>
  <body>
    <%
  String p=getServletContext().getRealPath("/");
    String p1=p.concat("pippo.txt");
    try{
    FileReader filein = new FileReader(p1); }
    catch(IOException e){}
                       do{
      next = filein.read();  // legge il prossimo carattere
      if (next != -1){    // se non e' finito il file
          nextc = (char) next;
         out.print(nextc);  // stampa il carattere
      }
   } while (next != -1);
   filein.close();      //chiude il file
   out.println();
 }
 %>
  </body>
</html>
CHE SECONDO ME DOVREBBE LEGGERE IL CONTENUTO DI UN FILE DI TESTO DI
NOME pippo.txt NELLA DIRECTORY
C:\Jakarta\jakarta-tomcat-5.0.28\webapps\vattine E VISUALIZZARLO A
SCHERMO MA INVECE MyEclipse MI AVVERTE CON UNA VOCE DI ERRORE CHE DICE
try without 'catch' or 'finally':try{ credo di aver capito ma non
riesco a correggere
QUELLO CHE PER ME è DIFFICILE FORSE A VOI FA SORRIDERE O SCUOTERE LA
TESTA MA SE potete DATEmi UNA DRITTA  (scusate ma con java sono
diventato sensibile al case sensitive)GRAZIE

cosě a occhio il catch lo devi spostare sotto filein.close()
quindi


%>




  <body>
    <%

      do{
      next = filein.read();  // legge il prossimo carattere
      if (next != -1){    // se non e' finito il file
          nextc = (char) next;
         out.print(nextc);  // stampa il carattere
      }
   } while (next != -1);
   filein.close(); }
    catch(IOException e){}
   out.println();
 }
 %>
  </body>
</html>
facci sapere

questa versione non mi da errori e gira:
<%@ page language="java" import="java.util.*,java.io.*" %>
<%!
private String p;
private int next;
private int nextc;
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'My.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>
  <body>
    <%
  String p=getServletContext().getRealPath("/");
  out.println(p);
    String p1=p.concat("nome.txt");
     out.println(p1);
    try{
    FileReader filein = new FileReader(p1);
                       do{
      next = filein.read();  // legge il prossimo carattere
      if (next != -1){    // se non e' finito il file
          nextc = (char) next;
          out.println("<html>");
          out.println("<body>");
         out.print("<h1>"+nextc+"<h1>");
         out.println("</body>");
         out.println("</html>");
      }
   }
    while (next !=-1);
   filein.close();
        //chiude il file
   out.println();
 } catch(IOException e){}
 %>
  </body>
</html>
Ma RIMANE IL PROBLEMA CHE NONOSTANTE SULLA VARIABILE p1 C'è TUTTO IL
PERCORSO DOVE SI TROVA IL FILE DEL TIPO
C:\Jakarta\jakarta-tomcat-5.0.­28\webapps\vattine\nome.txt non mi
visualizza IL SUO CONTENUTO Qualche dritta?  ciao e grazie

ho provato il tuo codice, a me funziona quasi.
quasi perchè ci sono due cose da correggere :
private int nextc;
questo va definito char
se no questo
          nextc = (char) next;
non serve a niente
questo poi provoca che ti viene stampato un carattere per ogni riga
out.print("<h1>"+nextc+"<h1>");
questi sono messi nel posto sbagliato, vengono scritti ad ogni carattere che
leggi (anche quelli precedenti)
         out.println("</body>");
         out.println("</html>");
ti mando il codice funzionante rivisto un po
---------------------------------------------------
<%@ page language="java" import="java.util.*,java.io.*" %>
<%!
private String p;
private int next;
private char nextc;
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'My.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>
  <body>
    <%
  String p=getServletContext().getRealPath("/");
  out.println(p);
  String p1=p.concat("nome.txt");
  out.println(p1);
  try {
      FileReader filein = new FileReader(p1);
      do {
         next = filein.read();  // legge il prossimo carattere
         if (next != 10)
             out.print((char) next);
             else
             out.print("<br>");
         }
      while (next !=-1);
      filein.close();
      }
  catch(IOException e){}
 %>
  </body>
</html>
---------------------------------------------
P.S. sei sicuro che nel file nome.txt ci sia qualcosa di stampabile ?

grazie mille ora tento