gpt4 book ai didi

java - 如何从 HttpServlet 调用 RemoteServiceServlet 中的方法?

转载 作者:太空宇宙 更新时间:2023-11-04 07:37:14 25 4
gpt4 key购买 nike

我正在使用 GWT,并且希望能够通过在浏览器中输入以下 URL 来调用主 RemoteServiceServlet 中的 incrementProduct(String ProductName) 方法:

http://mywebshop.appspot.com/increment?name=pillow

为了处理此请求,我创建了以下 HttpServlet:

public class IncrementServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
System.out.println("IncrementServlet called!");
String name = request.getParameter("name");
// Call MyRemoteServiceServlet.incrementProduct(name) somehow
}
}

并将其添加到 web.xml 中:

<servlet>
<servlet-name>IncrementServlet</servlet-name>
<servlet-class>x.y.z.IncrementServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>IncrementServlet</servlet-name>
<url-pattern>/increment</url-pattern>
</servlet-mapping>
  • 问题 1:这是一种明智的做法吗?
  • 问题 2:如何从 HttpServlet 调用incrementProduct()?

最佳答案

我碰巧忽略了一个解决我问题的重要事实:

  • RemoteServiceServlet 继承 HttpServlet !

所以我只是在 RemoteServiceServlet 中实现了 doGet(),如下所示:

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {

switch (req.getServletPath()) {
case "/increment":
incrementProduct(req.getParameter("name"));
break;
}
}

并将 web.xml 中的 IncrementServlet 替换为:

<servlet-mapping>
<servlet-name>MyRemoteServiceServlet</servlet-name>
<url-pattern>/increment</url-pattern>
</servlet-mapping>

这允许我通过在浏览器中输入此 URL 来调用incrementProduct(...):

http://mywebshop.appspot.com/increment?name=pillow

这正是我想要的!根本不需要另一个 HttpServlet :)

关于java - 如何从 HttpServlet 调用 RemoteServiceServlet 中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16665709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com