Joã*_*lva 15 java jsp tomcat jetty application-server
我正在尝试为Java应用程序创建Web用户界面.用户界面非常简单,包括一个页面,其中包含一个供用户提出查询的表单,以及一个结果页面 - 有点像Google的搜索引擎或Ask.com.
我对Java的基本API非常熟悉,但是我没有太多使用Java进行Web环境的经验(尽管我使用过ASP.NET),所以我正在寻找一些建议:
我应该使用什么Web应用程序服务器?请注意,我的界面非常轻,我只想要一些快速,易于启动/重置/停止和(重新)部署我的应用程序的东西.此外,我需要它在多种环境中工作,即GNU/Linux,Mac OS X和Windows XP/Vista.此外,我使用的ant和Eclipse,所以这将是巨大的,如果我可以轻松地添加一些ant目标服务器的管理,和/或使用IDE管理服务器.我已经研究过Tomcat和Jetty,后者看起来非常轻巧,易于安装和部署.这是理想的,因为GUI仅用于演示目的,我可能需要将其部署在不同的计算机中.然而,Tomcat已经存在了很长时间,而且似乎更成熟.
至于网页,Java Server Pages看起来很合适,因为它们看起来非常简单,我正在努力完成(处理表单并输出结果),但我很满意建议.
Engine,它有一个方法run(String),它将处理用户的输入并返回结果显示.这个类是应用程序的核心.现在,我只想将这个类实例化一次,因为它需要大量内存,并且需要很长时间才能启动,所以我想在应用程序/服务器启动时创建它,并存储该引用应用程序的整个范围(即,直到我停止服务器).然后,对于每个用户请求,我只需调用实例的run方法Engine,并显示其结果.如何用Java实现这一目标?djn*_*jna 10
在这一点上进行扩展.在实现JSP时,有两种模型被称为(具有一些创造性)作为模型1和模型2.请参阅此解释.
在模型1的情况下,您倾向于将代码直接放入JSP中,它扮演控制器角色.Persoanlly,即使在处理小型,快速开发的应用程序时,我也不是这样.我总是使用Model 2.但是如果你选择的话,你可以把一些Java放到你的JSP中.
<% MyWorker theWorker = MyWorkerFactory.getWorker();
// theWorker.work();
%>
Run Code Online (Sandbox Code Playgroud)
我赞成拥有这样的工厂,这样你就可以控制工人的创造.工厂会有类似的东西(举一个非常简单的例子)
private static MyWorker s_worker = new MyWorker();
public static synchronized getWorker() {
return s_worker;
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以在首次调用该方法时创建worker.
在模型2的情况下,你自然会有一个servlet,你将把一些代码放入其中,所以你可以拥有
private MyWorker m_worker = MyWorkerFactory.getWorker();
Run Code Online (Sandbox Code Playgroud)
这将在加载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();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24231 次 |
| 最近记录: |