我已经使用JSP/servlet为一个专用的Web应用程序创建了Logger Java类。
我的logger类在自定义文件中写入错误,但我也需要让它们显示为javascript窗口allert。
我本来打算用一个简单的
out.println(message_error_containing_javascript);
但它当然不起作用(我甚至不会编译)。
所以我想从一个标准的java类中启动一个Servlet。
这可能吗?如果没有,是否有不那么复杂的解决方案来解决这个问题?
不,不能仅仅从常规Java类"启动servlet"。事实上,您必须定义"启动"的含义,因为它不是您对servlet所做的事情。
您需要一个集中的日志记录系统,它可以获取所有消息,然后在视图呈现阶段截获HTML输出,并相应地插入javascript。
然而,这可能不是你想要的不那么复杂的解决方案。
编辑:我假设您处于以下情况,并且希望以某种方式向用户显示异常?(好的,你是)
public class MyNonServletClass {
public void method() {
try {
doSomething();
} catch(Exception e) {
myLogger.log(e);
}
}
}
您需要一些在显示时运行的机制,检查是否有需要显示的消息,并显示它们。JSF将有一个现成的机制来实现这一点,但使用JSP,您必须自己完成。
例如,您可以在每个页面上包含一个JSP片段,该片段将检查日志记录器的会话,并显示任何标记为日志记录器的消息。然而,正如我所说,你需要为此做一些工作。