我是servlet编程的新手,我正在尝试通过以下java方法创建和写入文件-
public void file() throws FileNotFoundException, UnsupportedEncodingException {
PrintWriter writer = new PrintWriter("the-file-name.txt", "UTF-8");
writer.println("The first line");
writer.println("The second line");
writer.close();
System.out.println("file created");
}
我想从servlet这样调用它
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
TryMethod tryMethod = new TryMethod();
tryMethod.file();
}
谁能建议为什么它不能从servlet中执行? 当从main方法调用该方法时会被调用。
答案 0 :(得分:1)
没有,从Servlet运行构造函数或方法通常没有问题(至少对于属于WebApp的类而言)。并且,如果出现问题,您将获得异常/错误。
因此,如果您看不到打印输出,则可能是代码未执行。这可能是其他方法(doPost
而非doGet
)或其他servlet(检查您的URL和servlet映射),也可能是未部署或找不到更新的类-或已部署了更新的类但是又用了一个。
我要做的第一件事是将System.out添加到doGet()方法中。只要没有打印出来,您就不必担心自己的课堂。
哦,为了说明清楚,您的代码使用了Web服务器的当前运行目录(相对文件名),您可能尚未检查该文件。尝试使用绝对路径或使其可配置。但是,无论如何,都会打印出您的system.out机架。