Bla*_*man 0 java file-io tomcat servlets
所以我将我的java应用程序推送到服务器,非常兴奋.
现在我想测试一下,如何将发布的数据保存到我的servlet文件中,文件名应该是一个唯一的guid.
到目前为止我有这个:
public class TestServlet extends javax.servlet.http.HttpServlet {
protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
throws javax.servlet.ServletException, IOException {
}
protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
throws javax.servlet.ServletException, IOException {
PrintWriter printWriter = response.getWriter();
printWriter.print("hello, world from testservlet!");
}
}
Run Code Online (Sandbox Code Playgroud)
因此,假设http发布数据(比如大约50K)将被发布到字段"有效负载",我如何获取发布的文本,并将其保存到文件中,文件名为GUID.
java有一个构造来清理一个打开的文件,比如在c#中:
using(var file = new ....)
{
// write to file
}
Run Code Online (Sandbox Code Playgroud)
这会关闭连接并清理内存等.
另外,我是否需要为tomcat设置特殊权限才能保存此文件?
我现在默认设置(只是在VPS上玩)使用ubuntu 11,安装tomcat6.
谢谢.
你可以用户request阅读"有效载荷",看到API文档的ServletRequest:
request.getParameter("payload");
Run Code Online (Sandbox Code Playgroud)
您可以使用File创建文件,请参阅AP doc:
File newFile = new File("fileName");
boolean isCreated = newfile.createNewFile();
Run Code Online (Sandbox Code Playgroud)
您可以按如下方式写入文件,
BufferedWriter out = new BufferedWriter(new FileWriter(newFile));
out.write(payLoad);
out.close();
Run Code Online (Sandbox Code Playgroud)
对于GUID,您会看到这在Java中创建GUID
为了清理,你不必在Java中担心它,它的垃圾收集器(Java中的垃圾收集器是什么?)当引用超出范围时自动为你做.
但是你应该关闭资源,比如out.close在你完成它之后将其释放回系统.
另外,我是否需要为tomcat设置特殊权限才能保存此文件?
您不需要这样做,因为tomcat它只是一个服务器,它与文件系统(OS)更相关.我在Unix上使用Glassfish,我不需要做任何类似的事情来创建文件.