Hallo,
ich mache mich gerade an die Servlet Programmierung ran. Das klappt soweit ganz gut, mein Browser zeigt die vom Servlet generierte HMTL Seite an. Aber ich würde gerne den Text auslesen und in eine Datei schreiben, die beim Request auf meinen Servlet mitgeschickt wird. Aber irgendwie enthält der ServletInputStream keine Daten. Ich habe folgenden Code:
Der Text in der Datei "TestLog.txt" ist "br.readLine() == null". Auch wenn ich mir direkt den ServletInputStream hole und da dann eine der read()-Methoden benutze, wird nix gelesen. Wieso ist das denn leer? Ich hätte jetzt eher sowas wie
GET /helloworld/Test HTTP/1.1
Host:localhost:8080
oder so in der art erwartet.
Übrigens: Die übertragenen Header kann ich mir alle problemlos ausgeben lassen, also irgendwas scheint zu funktionieren, nur will ich halt unverfälscht und direkt an die übertragenen Daten heran und anhand derer mein Response generieren. Die Header reichen mir nicht.
Weiß einer wie ich da ran komme bzw. warum der ServletInputStream keine Daten enthält?
mfg
SchlechterInformatiker
ich mache mich gerade an die Servlet Programmierung ran. Das klappt soweit ganz gut, mein Browser zeigt die vom Servlet generierte HMTL Seite an. Aber ich würde gerne den Text auslesen und in eine Datei schreiben, die beim Request auf meinen Servlet mitgeschickt wird. Aber irgendwie enthält der ServletInputStream keine Daten. Ich habe folgenden Code:
Code:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet
{
int n;
public HelloWorld()
{
super();
n = 1;
}
protected void doGet(HttpServletRequest req,HttpServletResponse res)throws ServletException, IOException
{
res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("<HTML><HEAD><TITLE>Hallo Du da!</TITLE></HEAD><BODY>Hallo Welt!</BODY></HTML>");
File f = new File("TestLog.txt");
FileWriter fw = new FileWriter(f);
fw.write(Integer.toString(n) + "\n");
BufferedReader br = req.getReader();
if(br == null)
{
fw.write("br == null");
}
else if (br.readLine() == null)
{
fw.write("br.readLine() == null");
}
else
{
br.reset();
fw.write(br.readLine());
}
fw.close();
out.close();
}
public String getServletInfo()
{
return "HelloClientServlet";
}
}
Der Text in der Datei "TestLog.txt" ist "br.readLine() == null". Auch wenn ich mir direkt den ServletInputStream hole und da dann eine der read()-Methoden benutze, wird nix gelesen. Wieso ist das denn leer? Ich hätte jetzt eher sowas wie
GET /helloworld/Test HTTP/1.1
Host:localhost:8080
oder so in der art erwartet.
Übrigens: Die übertragenen Header kann ich mir alle problemlos ausgeben lassen, also irgendwas scheint zu funktionieren, nur will ich halt unverfälscht und direkt an die übertragenen Daten heran und anhand derer mein Response generieren. Die Header reichen mir nicht.
Weiß einer wie ich da ran komme bzw. warum der ServletInputStream keine Daten enthält?
mfg
SchlechterInformatiker