如何在java中检测弹出调用?
我正在使用window.open从javascript调用我的servlet如何在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('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');