【问题标题】:Starting a servlet from a main in java从java中的main启动一个servlet
【发布时间】:2011-03-25 19:03:42
【问题描述】:

如何在服务器上运行 servlet 而不将其放在 web.xml 中。我想从 main 启动一个服务器并传递它应该运行的 servlet 谢谢

【问题讨论】:

  • 奇怪!在 Servlet 中编写一个 main 方法并运行它!为什么需要服务器?
  • 你到底想做什么?为什么它必须是一个 servlet,就像 Gopi 提到的,为什么还要一个服务器?
  • 我正在使用 MVC,控制器需要能够启动服务器并运行 servlet
  • 我需要一个能够填充服务器上的方法调用队列。我要么需要一个正在运行的服务器的实例(我已经发布了这个),要么自己启动它

标签: servlets


【解决方案1】:

这完全取决于您使用的服务器。如果它是像Jetty 这样的嵌入式服务器,那么您可以很容易地做到这一点,就像ServletHolder 一样。

context.addServlet(new ServletHolder(new HelloServlet()),"/*");

如果是其他,则需要查阅相关服务器的文档。这在 Tomcat、Glassfish 等非嵌入式服务器中通常是不可能的。

另见:


更新:根据您问题中的 cmets,您毕竟是在寻找错误方向的解决方案。重读 MVC 模式,更具体地说是前端控制器模式。您不应将 servlet 用作域对象,而应仅使用不扩展 HttpServlet 的简单可构造 Java 类。最后,您只需要一个 servlet,它会根据当前请求构造/选择正确的域对象。您可以在 this answer 中找到一些见解和一个基本的启动示例。

【讨论】:

  • 我正在使用 GWT 的 GAE,也就是 Jetty。
  • 我知道我应该最终得到一个 servlet。我不明白你的更新?我无法更改控制器。它调用视图的一个实例。这个视图需要启动服务器(我可以在GWT中做这个)我不知道如何访问它上面运行的java servlet。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-06
  • 2015-07-26
  • 2011-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多