我必须检查用户是否正在使用移动设备。
我可以使用此代码
String ua=request.getHeader("User-Agent");
为了使用request
我需要一个servlet(是吗?),所以我创建了一个,然后将该代码放在doPost/doGet
方法中。
由于这些是void
方法,如何获取返回值以了解用户是否正在使用移动设备?
可能我的方法不正确。
我的目标是从该servlet(假设我只需要一个servlet)获取一个告诉我用户是否在使用移动设备的值。
答案 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,而是将请求对象保留为方法参数或全局可访问的成员。