Как Java-приложение может идентифицировать определенный браузер?

0

Как определить, является ли браузер Firefox или Chrome? В основном я хотел, чтобы приложение запускалось только в определенном браузере, который регистрируется пользователем. Для этого сценария я хочу, чтобы мое приложение указывало браузер
для которого пользователь активирует это приложение для запуска.

Я использую Java-сервлет.

Я попробовал локальное хранилище браузера, но его можно удалить без контроля из моего приложения, если он может использоваться, пожалуйста, дайте мне знать, как я могу управлять всем этим в случае localstorage.

[ yes я can get a browser info but я want to identify machine with a browser from where my application user can use otherwise я need to restrict that user from acessing my application ]

Пожалуйста, порекомендуйте.

Большое спасибо.

  • 1
    Что за «приложение»?
  • 0
    эта тема поможет вам :: stackoverflow.com/questions/9847580/…
Показать ещё 5 комментариев
Теги:
servlets
browser

5 ответов

1
Лучший ответ

Извлеките свойства пользовательского агента из заголовка HTTP-запроса.

  String userAgent=req.getHeader("user-agent");
  String browserName = "";
  String  browserVer = "";
  if(userAgent.contains("Chrome")){ //checking if Chrome
        String substring=userAgent.substring(userAgent.indexOf("Chrome")).split(" ")[0];
        browserName=substring.split("/")[0];
        browserVer=substring.split("/")[1];
    }
    else if(userAgent.contains("Firefox")){  //Checking if Firefox
        String substring=userAgent.substring(userAgent.indexOf("Firefox")).split(" ")[0];
        browserName=substring.split("/")[0];
        browserVer=substring.split("/")[1];
    }
  • 0
    это работает, но я хочу настроить этот браузер с моим приложением, чтобы пользователь мог получить доступ к моему приложению только через этот браузер
  • 0
    Я не понял, что ты хочешь сказать?
Показать ещё 5 комментариев
2
httpRequest.getHeader("user-agent")
1
public class MyServlet extends HttpServlet
{  
   @Override
   public void doGet(final HttpServletRequest aRequest,   
                     final HttpServletResponse aResponse) throws ServletException, IOException
   {  
       final String agent = aRequest.getHeader("user-agent");
       // agent will looks like  
       // Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0
       // Mozilla/2.0 (compatible; MSIE 6.0; Windows NT 5.2)
       // Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
       // etc.
   }
}
  • 0
    от агента пользователя я могу также ограничить вход в приложение? означает, что моему приложению разрешено входить только с одной машины и одного браузера ....
  • 0
    @ SwapL, что означает application login ? Это логин, введенный пользователем в form input ?
Показать ещё 2 комментария
1

Вот код:

String userAgent = req.getHeader("user-agent");
UserAgent ua = UserAgent.parseUserAgentString(userAgent);
Version browserVersion = ua.getBrowserVersion();
String browserName = ua.getBrowser().toString();
int majVersion = Integer.parseInt(browserVersion.getMajorVersion());

Или использовать может легко получить deatils браузера из кода javascript, как это: Browser CodeName = navigator.appCodeName Browser Name = navigator.appName Browser Version = navigator.appVersion

  • 0
    Что такое UserAgent ?
  • 0
    Есть ли какая-то уникальная собственность, которую я могу получить? есть ли уникальная собственность с браузером ????
Показать ещё 3 комментария
1

Пожалуйста, используйте приведенный ниже код в сервлете, чтобы узнать, какой браузер поражает ваш сервлет.

String userAgent = request.getHeader("user-agent");

Ещё вопросы

Сообщество Overcoder
Наверх
Меню