Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从另一个类调用servlet中的方法_Java_Jsp_Servlets - Fatal编程技术网

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 on
PrintWriter.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") %>