从Servlet内部调用Java方法

时间:2018-11-25 18:23:19

标签: java file servlets writer

我是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方法调用该方法时会被调用。

1 个答案:

答案 0 :(得分:1)

没有,从Servlet运行构造函数或方法通常没有问题(至少对于属于WebApp的类而言)。并且,如果出现问题,您将获得异常/错误。

因此,如果您看不到打印输出,则可能是代码未执行。这可能是其他方法(doPost而非doGet)或其他servlet(检查您的URL和servlet映射),也可能是未部署或找不到更新的类-或已部署了更新的类但是又用了一个。

我要做的第一件事是将System.out添加到doGet()方法中。只要没有打印出来,您就不必担心自己的课堂。

哦,为了说明清楚,您的代码使用了Web服务器的当前运行目录(相对文件名),您可能尚未检查该文件。尝试使用绝对路径或使其可配置。但是,无论如何,都会打印出您的system.out机架。