Versuchen Sie Folgendes:
import javax.servlet.*; import javax.servlet.http.*; java.io.* importieren; öffentliche Klasse MessageServlet erweitert HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException { // eine HTML-Seite ausgeben res.setContentType("text/html"); // Einen Konfigurationsparameter laden (Sie müssen diesen selbst festlegen) String root = getInitParameter("root"); // etwas HTML ausgeben ServletOutputStream out = res.getOutputStream(); aus. println(" "); out.println(" Nachricht des Tages "); out.println(" Heutige Nachricht: "); // die Datei ausgeben InputStream in = null; try { in = new BufferedInputStream (new FileInputStream(root + "/message.txt") ); int ch; while ((ch = in.read()) != -1) { out.print((char)ch); } } Finally { if (in != null) in.close(); // sehr wichtig } // beenden out.println(" "); } }
[Hinweis: Ich habe das obige Beispiel jetzt erfolgreich kompiliert und ausgeführt. Sie haben nach einer funktionierenden Quelle gefragt, Sie haben sie bekommen :-)]
Möglicherweise möchten Sie mehr als nur die Datei kopieren. Schau in den java.io Paket für Klassen, die Ihnen bei der Verarbeitung einer Datei helfen, z StreamTokenizer.
Achten Sie auf die Verwendung eines InitParameters, um einen Root im Dateisystem bereitzustellen. Auf diese Weise kann Ihr Servlet auf anderen Servern verwendet werden, ohne dass ein Dateipfad fest codiert werden muss.
Beachten Sie auch die Verwendung von a endlich blockieren, um die Datei zu schließen. Auf diese Weise wird die Datei geschlossen, auch wenn der Lesevorgang eine Ausnahme auslöst. Dies ist auf einem Server wichtig, da die Dateideskriptoren begrenzt sind und Sie keine Lecks haben möchten, da der Server (hoffentlich!) sehr lange verfügbar sein wird.
Wenn Sie auf lokale Ressourcen zugreifen, müssen Sie Sicherheitslücken berücksichtigen. Wenn Sie beispielsweise einen Dateinamen basierend auf einem FORM-Parameter erstellen, sollten Sie ihn validieren, um sicherzustellen, dass ein Hacker, wenn er beispielsweise „/etc/passwd“ als seinen Benutzernamen eingibt, das System nicht tatsächlich erhält Passwortdatei.







![7 schnelle Wege, Daten auf ein neues Smartphone [Android oder iPhone] zu übertragen Übertragung von Telefon zu Telefon](https://www.jguru.com/wp-content/uploads/2026/01/word-image-116310-1-e1768996905264-100x70.jpeg)