0

我想执行一个 servlet 以从请求中获取服务器名称、服务器端口和 ContextPath。但我不想通过用户交互来调用 servlet。我想通过 Java 代码执行这个 servlet。我不确定这是否可能。请给我推荐。

4

4 回答 4

3

为什么不简单地使用URL来请求 servlet。

对于更复杂的使用,请尝试HttpClient

于 2009-08-21T08:19:13.203 回答
2

如果您的意思是您只想执行一些代码以从请求中提取信息,那么您为什么要尝试调用 servlet?只需在某处编写一个方法,然后调用它。

您还可以使用 Servlet 过滤器在每个请求中提取此信息,将结果作为属性添加到 HttpServletRequest 对象,以便处理请求的任何其他 servlet 可以找到并使用它。

如果您的意思是想让 servlet 在启动时加载,可以在 web.xml 配置中添加:

<servlet>
  ...
  <load-on-startup>1</load-on-startup>
</servlet>
于 2009-08-21T08:27:11.657 回答
1

如果您的 servlet 在没有用户交互的情况下每 x 分钟调用一次服务,那么您可能想做一些不同的事情。

您可以使用 aServletContextListener来监听 Web 上下文何时启动,然后启动您想要的任何代码。

http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletContextListener.html

于 2009-08-21T08:27:59.520 回答
0

感谢您的回答实际上,我的问题是:我有一个 Web 应用程序和一个 WebService(在不同的服务器上)。我希望 Web 应用程序调用 Web 服务(在特定持续时间之后)将数据(域、端口、上下文路径..)发送到 Web 服务,以便我可以知道我的 Web 应用程序的部署位置。

为了解决这个问题,我创建了一个 servlet 来调用 WebService,通过使用这个 servlet,我有 HttpServletRequest 对象,我可以获取域、端口、上下文路径。然后我可以将数据发送到 webservice。但我不知道如何在没有用户交互的情况下执行这个 servlet(在特定持续时间之后)

于 2009-08-24T04:18:05.600 回答