Java 如何从另一个类调用servlet中的方法
我必须检查用户是否正在使用移动设备 我可以用这个代码来做Java 如何从另一个类调用servlet中的方法,java,jsp,servlets,Java,Jsp,Servlets,我必须检查用户是否正在使用移动设备 我可以用这个代码来做 String ua=request.getHeader("User-Agent"); 为了使用request我需要一个servlet(是吗?),所以我创建了一个servlet,并将该代码放在doPost/doGet方法中 由于这些都是void方法,如何获取返回值以了解用户是否正在使用手机 也许我的方法不对 我的目标是从该servlet(假设我只需要一个servlet)中获取一个值,该值告诉我用户是否正在使用移动设备 如何获取返回值以了解
String ua=request.getHeader("User-Agent");
为了使用request
我需要一个servlet(是吗?),所以我创建了一个servlet,并将该代码放在doPost/doGet
方法中
由于这些都是void
方法,如何获取返回值以了解用户是否正在使用手机
也许我的方法不对
我的目标是从该servlet(假设我只需要一个servlet)中获取一个值,该值告诉我用户是否正在使用移动设备
如何获取返回值以了解用户是否正在使用手机
Write onPrintWriter.Write
方法,它将在响应时显示文本
if(isMobileAgent()){
response.getWriter().write("User uses a mobile devices");
}
一种方法是使用session并在session中保留
字符串ua
在doPost()
或doGet()中
现在你想去哪里检查就去做
session.getAttribute("ua");
只要会话存在,该值就会存在。通常,从servlet的doPost或doGet方法调用其他API或方法。它们的作用类似于传入请求的入口点。因此,您可以根据应用程序的需要解析请求并提取必要的值,然后将其传递给处理API
对于返回值,我假设您谈论的是响应。您可以在响应对象中设置值。< P>如果您有多个servlet,如果您对每个请求都需要它,那么考虑创建一个过滤器,而不是servlet。其中可以执行stringua=request.getHeader(“用户代理”)
并将其设置为请求参数或会话参数。这也可能有助于您在下一行中可能需要HTTP信封中的其他头信息
对于servlet,您必须在响应中返回它,或者将它设置为请求/会话参数。我假设问题是,您需要从JSP页面了解用户代理的值?
那么,请求对象可以直接在您的页面中使用。
像这样的剧本
<% String ua=request.getHeader("User-Agent") %>
我能胜任这项工作
此外,如果您希望请求对象位于java层,在代码流的深处,那么它不是您需要使用的servlet,而是将请求对象作为方法参数或全局可访问的成员持久化 要使用“请求”,我应该使用servlet。然后问题是如何从我的jsp页面调用该servlet。@MatteoDepasquali我知道有任何方法可以调用servlet,如在表单action=“servlet”或jquery按钮事件或ajax中。这取决于您的需求。是的,我知道,但我不能从表单的“action”调用我的servlet。我的servlet只是检查用户代理,它不会在屏幕上打印任何内容。无论如何,我会想办法叫它,谢谢你,伙计:)@MatteoDepasquali如果我的回答有帮助,那么你可以接受这个答案,如果你有任何疑问,请随时提问
<% String ua=request.getHeader("User-Agent") %>