Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.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中检测弹出调用?_Java_Javascript_Servlets_Web Applications_Popup - Fatal编程技术网

如何在java中检测弹出调用?

如何在java中检测弹出调用?,java,javascript,servlets,web-applications,popup,Java,Javascript,Servlets,Web Applications,Popup,我正在使用window.open从javascript调用我的servlet window.open('myServlet','window','window Params') 我想在myservlet中检测调用是否来自popup,而不传递任何参数和servlet。我们可以在servlet中检测它吗?您可以使用查询参数 window.open('myServlet?from=popup','window','window Params'); 使用servlet中的from参数来检测 编辑

我正在使用window.open从javascript调用我的servlet

  window.open('myServlet','window','window Params')

我想在myservlet中检测调用是否来自popup,而不传递任何参数和servlet。我们可以在servlet中检测它吗?

您可以使用查询参数

window.open('myServlet?from=popup','window','window Params');
使用servlet中的from参数来检测

编辑:


由于您不想使用查询参数,服务器端无法知道从何处(单击)调用该参数。

最好使用查询参数(如Suresh Atta所述)。一种可能的替代方法——因为您不能使用参数——可能是为您的servlet设置两个servlet映射——其中一个映射仅用于弹出窗口

<servlet>
    <servlet-name>myServlet</servlet-name>
    <servlet-class>foo.bar.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>myServlet</servlet-name>
    <url-pattern>/myServlet</url-pattern>
</servlet-mapping>
<!-- Popup-specific mapping -->
<servlet-mapping>
    <servlet-name>myServlet</servlet-name>
    <url-pattern>/myServlet-popup</url-pattern>
</servlet-mapping>
然后在servlet内部,您可以检查
HttpServletRequest
,以确定使用的路径,从而确定是否通过弹出窗口调用servlet


如前所述,参数法更好。但这可能是一个可能的选择。

客户端运行的Javascript与服务器端运行的servlet。我同意,但我认为可能是浏览器向服务器发送一些特定于弹出窗口的内容side@user3222249你是说请求头,对吗?没有任何东西与触发请求的浏览器位置相关。至少是阿福。
window.open('myServlet-popup','window','window Params');