Login / Sign Up


Enter site:
Login: 
Password: 


First time here?
 
Register [?]:
Registering allows you:
  • Purchase products from the product catalog and access them any time.
  • Ask questions to another specialists in IT
  • Publish your own Joomla extensions, soft or other products if you are developer or distributor
  • Add interesting weblinks and access them from any place
  • Watch the updates of the site and have special abilities that guests don't have
  • Watch the news of the service and new articles and get knowledge
Choose login:
Your Email:
Enter the result of operation (in digits):
17 + 2 = ? Update

Как определить тип браузера в JSP? PDF Print E-mail
Written by Максим   
Thursday, 12 April 2012 10:53
Liked:
1


Did not like: 3

Когда мы работаем в контексте JSP-страницы, у нас есть доступ к "скрытому" объекту - request. Это объект класса HttpServletRequest, который содержит информацию о "входящем" запросе - т.е. запросе к серверу, под управлением которого выполняется наше Java-приложение. HTTP-запрос содержит в себе различные заголовки запроса. Например, запрос к Яндексу может выглядеть так:


	GET http: //yandex.ru/ HTTP/1.1

	Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*

	Accept-Language: ru

	User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; MRA 5.7 (build 03686); .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2; .NET4.0C; .NET4.0E)

	Accept-Encoding: gzip, deflate

	Proxy-Connection: Keep-Alive

	Host: yandex.ru

	Cookie: yandexuid=1071091881333439793

	
 
Здесь заголовками являются "Accept", "Accept-Language", "User-Agent" и т.д. Для нашей задачи - определения типа браузера в JSP-странице - нам нужно свойство "User-Agent". Это свойство содержит строку, из которой можно понять тип пользовательского браузера, т.е. получить ответ на вопрос - "какой браузер послал запрос к нашей JSP". К сожалению, данный метод не является самым надежным - производители различных браузеров имеют полное право менять значение данной строки в новых версиях своих браузеров. То есть может получиться, что, полагаясь на значение заголовка "User-Agent", код, который мы рассмотрим ниже, "сломается" в определенный момент. Но есть и положительный момент - хоть производители и имеют право менять значение заголовка "User-Agent", на практике это происходит крайне редко. Итак, мы можем узнать, какой браузер прислал нам запрос с помощью следующего кода:
 

	<!-- это наша JSP-страница -->

	<%

	if (request != null) {

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

	boolean bIsIE = sUserAgent.indexOf("MSIE") >= 0;

	boolean bIsMozilla140_a1 = sUserAgent.indexOf("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:14.0) Gecko/20120405 Firefox/14.0a1") >= 0;

	// ...

	}

	 

	if (bIsIE) {

	// ... Клиентский запрос пришел от Internet Explorer

	} else if (bIsMozilla140_a1) {

	// ... Запрос пришел от Mozilla Firefox версии 14.0a1

	} else {

	// ....

	}

	%>

	
 
Значения заголовка "User-Agent" для различных браузеров можно узнать сейчас на многих сайтах, в частности на сайтах производителей этих браузеров. Но есть сайты, хранящие сводную информацию, например здесь можно легко найти значение строки "User-Agent" для интересующего Вас браузера - http://www.useragentstring.com/pages/useragentstring.php
 


Last Updated on Saturday, 29 June 2013 16:14
 
Автор статьи: Damascus
Всего статей: 62
Рейтинг: 3111
Страница Google+: Google

Found Error?

Система Orphus

Site Statistics

Яндекс.Метрика

Our Pages


Allineed.Ru © 2009-2012 - Allineed.Ru - ответы на IT вопросы, статьи о разработке, IT и программном обеспечении. При использовании материалов сайта ссылка обязательна. Использование данного сайта и любой его части означает принятие условий Пользовательского Соглашения.
Allineed.Ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters. The Joomla! name and logo is used under a limited license granted by Open Source Matters the trademark holder in the United States and other countries.