استخدم JSP لقراءة معلومات العميل
الكاتب:Eve Cole
وقت التحديث:2009-07-02 17:13:11
استخدم JSP لقراءة معلومات العميل
يرجى قراءة الكود التالي. إذا كانت متطلبات الاستخدام الخاصة بك مختلفة، فيمكن تعديل هذه الرموز بسهولة. تتيح لك هذه الرموز الحصول على:
شركة الشركة، اسم المستخدم، الإصدار، الإصدار الرئيسي، الإصدار الثانوي
نظام التشغيل (لم ينته بعد!) واللغة والإعدادات المحلية وما إلى ذلك.
قم بإنشاء ملف JSP جديد:
الرجاء إضافة ملفات الفئة التالية إلى مسار الفصل (تحتاج إلى إنشاء نفس بنية الدليل - de.hunsicker.http.util، بالطبع يمكنك أيضًا ضبط اسم الحزمة بنفسك!):
package de.hunsicker.http.util;
import java.util.*;
استيراد javax.servlet.*;
import javax.servlet.http.*;
يمتد متصفح الفئة العامة إلى HttpServlet
{
طلب HttpServletRequest المحمي؛
جلسة HttpSession المحمية؛
وكيل مستخدم سلسلة محمي؛
شركة String المحمية؛ //اسم الشركة des Herstellers
اسم السلسلة المحمي؛ // Bezeichnung des Browsers
نسخة السلسلة المحمية؛
protected String mainVersion;
protected String minorVersion;
protected String os;
لغة السلسلة المحمية = "de";
protected Locale locale; // Locale-Objekt mit den aktuellen
// Spracheinstellungen
لغة Hashtable الخاصة المدعومة؛ // Untersttzte Sprachen
المتصفح العام (طلب HttpServletRequest، جلسة HttpSession)
{
this.initialize();
this.request = request;
this.session = session;
this.setUserAgent(this.request.getHeader("User-Agent"));
this.setCompany();
this.setName();
this.setVersion();
this.setMainVersion();
this.setMinorVersion();
this.setOs();
this.setLanguage();
this.setLocale();
}
تهيئة الفراغ العام ()
{
this.supportedLanguages = new Hashtable(2);
this.supportedLanguages.put("en", "");
this.supportedLanguages.put("de", "");
}
مجموعة الفراغ العام (سلسلة httpUserAgent)
{
this.userAgent = httpUserAgent.toLowerCase();
}
شركة مجموعة باطلة خاصة ()
{
إذا (this.userAgent.indexOf("msie") > -1)
{
this.company = "Microsoft";
}
وإلا إذا (this.userAgent.indexOf("opera") > -1)
{
this.company = "برنامج Opera";
}
وإلا إذا (this.userAgent.indexOf("mozilla") > -1)
{
this.company = "Netscape Communications";
}
آخر
{
this.company = "غير معروف";
}
}
/**
* استمتع بأقوى المتصفحات المستخدمة.
*/
سلسلة عامة getCompany ()
{
إرجاع هذه الشركة؛
}
اسم مجموعة باطلة خاصة ()
{
إذا (this.company == "Microsoft")
{
this.name = "Microsoft Internet Explorer";
}
وإلا إذا (this.company == "Netscape Communications")
{
this.name = "Netscape Navigator";
}
وإلا إذا (this.company == "Operasoftware")
{
this.name = "Operasoftware Opera";
}
آخر
{
this.name = "غير معروف";
}
}
/**
* استمتع بأسماء المتصفحات المستخدمة.
*/
سلسلة عامة getName ()
{
إرجاع هذا. الاسم؛
}
مجموعة باطلة خاصة ()
{
كثافة العمليات tmpPos;
سلسلة tmpString؛
إذا (this.company == "Microsoft")
{
String str = this.userAgent.substring(this.userAgent.indexOf("msie") + 5);
this.version = str.substring(0, str.indexOf(";"));
}
آخر
{
tmpString = (this.userAgent.substring(tmpPos = (this.userAgent.indexOf("/")) + 1, tmpPos + this.userAgent.indexOf(" "))).trim();
this.version = tmpString.substring(0, tmpString.indexOf(" "));
}
}
/**
* قم بتزويد أرقام إصدارات المتصفحات المستخدمة.
*/
سلسلة عامة getVersion ()
{
إرجاع هذا الإصدار؛
}
مجموعة الفراغ الخاصةMainVersion()
{
this.mainVersion = this.version.substring(0, this.version.indexOf("."));
}
/**
* قم بتزويد أرقام الإصدارات الرئيسية للمتصفحات المستخدمة.
*/
سلسلة عامة getMainVersion ()
{
إرجاع this.mainVersion;
}
مجموعة باطلة خاصة MinorVersion ()
{
this.minorVersion = this.version.substring(this.version.indexOf(".") + 1).trim();
}
/**
* قم بتزويد رقم التغيير بالمتصفحات المستخدمة.
*/
سلسلة عامة getMinorVersion ()
{
إرجاع this.minorVersion;
}
مجموعة باطلة خاصة ()
{
إذا (this.userAgent.indexOf("win") > -1)
{
إذا (this.userAgent.indexOf("windows 95") > -1 || this.userAgent.indexOf("win95") > -1)
{
this.os = "Windows 95";
}
إذا (this.userAgent.indexOf("windows 98") > -1 || this.userAgent.indexOf("win98") > -1)
{
this.os = "ويندوز 98";
}
إذا (this.userAgent.indexOf("windows nt") > -1 || this.userAgent.indexOf("winnt") > -1)
{
this.os = "Windows NT";
}
إذا (this.userAgent.indexOf("win16") > -1 || this.userAgent.indexOf("windows 3.") > -1)
{
this.os = "Windows 3.x";
}
}
}
/**
* استمتع بأسماء أنظمة Betriebs.
*/
سلسلة getOs العامة ()
{
إرجاع this.os;
}
لغة مجموعة باطلة خاصة ()
{
String prefLanguage = this.request.getHeader("Accept-Language");
إذا (prefLanguage != null)
{
لغة السلسلة = فارغة؛
StringTokenizer st = new StringTokenizer(prefLanguage, "،");
عناصر int = st.countTokens();
لـ (int idx = 0؛ عناصر idx؛ idx++)
{
إذا (this.supportedLanguages.containsKey((اللغة = st.nextToken())))
{
this.language = this.parseLocale(language);
}
}
}
}
/*
* Hilfsfunktion fr setLanguage().
*/
سلسلة خاصة parseLocale (لغة السلسلة)
{
StringTokenizer st = new StringTokenizer(language, "-");
إذا (st.countTokens () == 2)
{
إرجاع st.nextToken();
}
آخر
{
لغة العودة
}
}
/**
* Liefert das Lönderkürzel der vom Benutzer
* bevorzugten Sprache.
*/
سلسلة عامة getLanguage ()
{
إرجاع this.language;
}
مجموعة الفراغ الخاصة ()
{
this.locale = لغة جديدة(this.language, "");
}
/**
* استمتع بكائن محلي من خلال متصفحات مفضلة تستخدم المتصفحات
*/
اللغة العامة getLocale()
{
إرجاع this.locale;
}
}