Interface do usuário da web para um aplicativo Java

Estou tentando criar uma interface de usuário da web para um aplicativo Java. A interface do usuário será muito simples, consistindo de uma única página com um formulário para os usuários colocarem suas consultas e uma página de resultados - como o mecanismo de pesquisa do Google ou o Ask.com.

Estou bastante familiarizado com a API base do Java, mas não tenho muita experiência em usar o Java para ambientes da Web (embora eu tenha usado o ASP.NET), então estou procurando alguns conselhos:

o queservidor de aplicativos da web devo usar? Note que minha interface é muito leve, e eu só quero algo que seja rápido, fácil de iniciar / resetar / parar e (re) implantar meu aplicativo. Além disso, eu preciso disso para trabalharvários ambientes, nomeadamente, GNU / Linux, Mac OS X e Windows XP / Vista. Além disso, estou usandoant eEclipse, então seria ótimo se eu pudesse facilmente adicionar algunsant alvos para gerenciamento de servidor e / ou gerenciar o servidor usando o IDE. Eu olhei emTomcat eCaise o último parece ser muito leve e fácil de instalar e implantar. Isso é ideal, porque a GUI é apenas para fins de demonstração e provavelmente precisarei implantá-la em computadores diferentes. No entanto, o Tomcat existe há muito tempo e parece mais maduro.

Quanto aopaginas web, Java Server Pages parece um bom ajuste, já que eles parecem suficientemente simples para o que eu estou tentando realizar (processando um formulário e gerando o resultado), mas estou atento a sugestões.

Eu também tenho outro requisito, que requer que eu explique o fluxo de trabalho "básico" do aplicativo: Basicamente, eu tenho uma classeEngine que tem um métodorun(String) que processará a entrada do usuário e retornará os resultados para exibição. Esta classe é atestemunho da aplicação. Agora eu gostaria deinstanciar esta aulaapenas uma vez, como requer ummuito de memória, e leva muito tempo para a inicialização, então eu gostaria de criá-lo quando o aplicativo / servidor é iniciado e armazenar essa referência para o período inteiro do aplicativo (por exemplo, até que eu pare o servidor). Então, para cada solicitação do usuário, eu simplesmente invoco orun método doEngine exemplo, e exibir seus resultados.Como isso pode ser feito em Java?

questionAnswers(7)

yourAnswerToTheQuestion