应用服务器。您认为Tomcat在运行时占用空间、学习量或…?我倾向于选择与一个IDE有良好集成的东西。所以Eclipse+Tomcat或者ApacheGeronimo,可能在里面
WebSphere Community Edition
伪装可以完成这项工作。从我所看到的情况来看,这些足以满足您的需求,而且学习曲线实际上是可以管理的。
是的,JSPs。你可能会发现你的演讲需要变得有点复杂。去JSF的额外努力可能会有回报,比如日期选择工具。
在您的处理过程中,您将拥有一个servlet(如果您使用的是JSF,则为action类),该类可以有一个类型为engine的成员变量,在启动时初始化,然后用于每个请求。要记住的是,许多用户会同时访问该servlet,因此也会同时访问该引擎。同时使用多个线程是否安全?
在这一点上展开。在实现JSP时,有两个模型被称为模型1和模型2(具有一定的创造性)。见
this explanation
.
在模型1中,您倾向于将代码直接放入JSP中,它扮演着控制器角色。个人而言,即使在处理小型、快速开发的应用程序时,我也不会这样做。我总是用模型2。但是,如果你选择,你可以把一些Java放到你的JSP中。
// theWorker.work();
%>
我希望有一个这样的工厂,这样你就可以控制工人的创造。工厂会有类似的东西(举一个非常简单的例子)
private static MyWorker s_worker = new MyWorker();
public static synchronized getWorker() {
return s_worker;
}
或者,您可以在第一次调用该方法时创建辅助对象。
对于模型2,您自然会有一个servlet,您将在其中放入一些代码,因此您可以
private MyWorker m_worker = MyWorkerFactory.getWorker();
这将在加载servlet时初始化。无需担心将其设置为启动时加载,您只需知道它将在运行第一个请求之前被缩写。
更好的是,使用servlet的init()方法。这被保证在处理任何请求之前被调用,并且是servlet api为此类工作架构的地方。
public class EngineServlet extends HttpServlet {
private Engine engine;
// init is the "official" place for initialisation
public void init(ServletConfig config) throws ServletException {
super.init(config);
engine = new Engine();
}