仅在一个浏览器中运行java Web应用程序

时间:2015-05-14 11:08:31

标签: java url jboss

我希望我的网络应用程序只能在一个网络浏览器中运行。

E.g。我的申请网址是:http://localhost:8080/project

我想只在一个浏览器中限制此URL。 如果我选择Mozila Firefox作为项目,这个URL不能在IE,Chrome等其他浏览器中运行。

是否可以处理?

2 个答案:

答案 0 :(得分:3)

你为什么要那样做?使用Javascript,您可以检测不同的浏览器并按照....

工作

https://stackoverflow.com/a/5918791/3617531

编辑

无论如何,您可以在apache中检查UserAgent:

RewriteEngine On

RewriteCond %{HTTP_USER_AGENT} (OneMobileUserAgent|AnotherUserAgent|...)
RewriteRule (.*) userAgentA/$1

编辑2

刚刚找到一个很好的网站,其中包含有关用户代理的大量信息并对其进行解析。希望它可以帮助您找到理想的解决方案: https://developer.jboss.org/thread/177392?_sscc=t

编辑3

正如您所说:我将尝试解释两个第一种方法(javascript)和Apache。

Javascript有一个查询HTTP HEADERS的系统。其中一个是USER_AGENT,客户端发送此标头以识别自己。这显然用于根据浏览器格式化网页,或显示告诉用户使用其他浏览器查看页面的消息。

使用您可以检查的navigator.userAgent变量,可以在javasript中轻松检测到用户代理。在这里你可以阅读更多关于 http://en.wikipedia.org/wiki/User_agent

此外,Apache可以检查将在.htaccess中检查的HTTP_USER_AGENT变量

.htaccess是一个告诉apache如何在特定目录中运行的文件。在那里,yoy必须使用模块“mod_rewrite”,让你让apache充当代理,然后,例如,根据检测到的userAgent拒绝连接:

RewriteEngine On

//allow access to useragentA
RewriteCond %{HTTP_USER_AGENT} UserAgentA
//This line will redirect the user to http://yourdomain.com/webappForuserAgentA
RewriteRule (.*) webappForuserAgentA/$1 [P,R,L]

//Deny (F) access to userAgentB (it will give the error to the client with the wrong browser
RewriteCond %{HTTP_USER_AGENT} UserAgentB
RewriteRule ^.* - [F,L]

你有一个带有apache的.htaccess mod_rewrite指南。

http://www.javascriptkit.com/howto/htaccess13.shtml

答案 1 :(得分:1)

您可以设置JBoss服务器的最大连接数。这是通过为JBoss max-connections设置Connector属性的值来完成的。

根据文档,max-connections属性:

  

连接器支持的最大连接数。

因此,要设置它,请打开jbossweb.sar/server.xml文件并设置max-connections to 1`

<Connector protocol="HTTP/1.1" port="8080" 
           address="${jboss.bind.address}" connectionTimeout="20000" 
           redirectPort="8443" max-connections="1" /> 

这样,当第一个连接仍处于活动状态时,JBoss将不允许建立第二个连接。