如何从另一个类调用servlet中的方法

时间:2013-12-12 09:56:05

标签: java jsp servlets

我必须检查用户是否正在使用移动设备。

我可以使用此代码

String ua=request.getHeader("User-Agent");

为了使用request我需要一个servlet(是吗?),所以我创建了一个,然后将该代码放在doPost/doGet方法中。

由于这些是void方法,如何获取返回值以了解用户是否正在使用移动设备?

可能我的方法不正确。

我的目标是从该servlet(假设我只需要一个servlet)获取一个告诉我用户是否在使用移动设备的值。

5 个答案:

答案 0 :(得分:1)

如果你有多个servlet,并且每个请求都需要它,那么考虑创建一个过滤器而不是一个servlet。您可以在哪里执行String ua=request.getHeader("User-Agent");并将其设置为请求参数或会话参数。这也可以帮助您,如果您需要从HTTP信封中获取其他标题信息,可能会出现这种情况。

对于servlet,您必须在响应中返回它或将其设置为请求/会话参数。

答案 1 :(得分:0)

  

如何获取返回值以了解用户是否正在使用移动设备?

PrintWriter.write方法上写一下,它会在响应时显示文字,

 if(isMobileAgent()){
 response.getWriter().write("User uses a mobile devices");
 }

答案 2 :(得分:0)

一种方法是使用会话并在会话中保留String ua

doPost()doGet()

String ua=request.getHeader("User-Agent");
Httpsession session=request.getSession();
session.setAttribute("ua",ua);

现在你想要检查的地方

session.getAttribute("ua");

只要存在session,就会出现该值。

答案 3 :(得分:0)

通常,从servlet的doPost或doGet方法调用其他API或方法。它们就像传入请求的入口点一样。因此,您可以根据应用程序的需要解析请求并提取必要的值,并将其传递给处理API。

对于返回值,我假设您正在讨论响应。您可以在响应对象中设置值。

答案 4 :(得分:0)

我认为问题就像是,您需要知道JSP页面中的User Agent值吗? 好吧,请求对象可以在您的页面中直接使用。 在像

这样的脚本中
<%  String ua=request.getHeader("User-Agent") %>

可以完成这项工作。

此外,如果您希望java层中的请求对象位于代码流的深处,那么它不是您需要使用的servlet,而是将请求对象保留为方法参数或全局可访问的成员。