【发布时间】:2018-09-28 16:14:23
【问题描述】:
我正在尝试在 Java Servlet 中写入文件。我在普通的 java 项目中有相同的代码,它工作正常,但在 Java Servlet 中却没有。
包含该方法的类请参考以下代码:
public class UserRecords {
private String fileName = "Users.txt";
public void addRecord(String firstName, String lastName, String email, String pass){
try {
FileWriter fw = new FileWriter(fileName, true);
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter pw = new PrintWriter(bw);
pw.println(firstName + " " + lastName + " " + email + " " + pass);
fw.flush();
fw.close();
} catch (IOException ex) {
Logger.getLogger(UserRecords.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
调用该方法的Java Servlet:
public class Register extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String firstName = request.getParameter("firstName");
String lastName = request.getParameter("lastName");
String email = request.getParameter("email");
String pass = request.getParameter("pass");
UserRecords ur = new UserRecords();
// ur.addRecord(firstName, lastName, email, pass);
ur.addRecord("Bucky", "Roberts", "bucky@records.com", "mypass");
HttpSession session = request.getSession();
session.setAttribute("firstName", firstName);
RequestDispatcher rd = request.getRequestDispatcher("/welcome.jsp");
rd.forward(request, response);
}
}
请帮助和指导写入文件Users.txt
提前致谢!
【问题讨论】:
-
在普通的java项目中可以正常工作,但在Java Servlet中不行。,没有描述问题,请详细说明问题。如果创建了文件或创建了空白文件,或者是否捕获了与遇到的错误相关的任何日志(如果有),您是否检查了路径。
-
您能否确认该方法是否被调用?或者在方法被调用之前是否有一些异常?
-
@Arvind 我已经在一个常规的 java 项目中测试了相同的代码,它创建了文件并打印到它,但它在这里没有做同样的事情。甚至没有创建文件。我还尝试在根目录中创建该文件以测试它是否至少可以打印但它没有做任何事情。
-
在服务器跟踪文件绝对路径上尝试更多日志,使用
File类的权限(读/写)。 -
您可以使用文件
Users.txt搜索您的工作空间一次吗?如果根据您的 cmets 没有例外,则应在某处创建它。通过 IDE 以及本地目录结构进行搜索。
标签: java file servlets printwriter