已更改
我正在尝试制作一个 servlet 并使用非 servlet 类来管理数据库连接和用户授权。我正在使用日志文件来跟踪事务何时完成。我的问题是当我从servlet类调用下面的类时,我没有得到任何条目,而是当我从非servlet类调用它时得到结果。
package api;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.Date;
public class DBase {
private PrintStream outstream;
public DBase( )
{
try {
File file = new File("log");
boolean exists = file.exists();
if (exists) {
outstream = new PrintStream(new FileOutputStream("log",true));
} else {
outstream = new PrintStream(new FileOutputStream(file,true));
}
System.setOut(outstream);
System.setErr(outstream);
System.out.println("n" + getDateTime() + "nInvoker: " + getClass().getName());
} catch (FileNotFoundException ex) {
Logger.getLogger(DBase.class.getName()).log(Level.SEVERE, null, ex);
}
}
private String getDateTime() {
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
return dateFormat.format(date);
}
}
从非 servlet 类调用该类会在日志文件中提供条目。
package api;
public class Test {
public static void main(String args[]){
DBase dbase = new DBase();
}
}
在这里我一无所获。它在package servlets
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
new api.Test(); //or new api.DBase();
} finally {
out.close();
}
}
我使用的是 Netbeans 6.8 和 Tomcat6
除了实例化api.Test
类并返回之外,您不执行任何操作。
实例化类时不会执行main
。 调用它,或创建要调用的方法。
main
方法更多地意味着应用程序的入口点,而不是通用方法。它可以这样使用,但IMO具有误导性。