Gunakan JSP untuk membaca informasi klien
Penulis:Eve Cole
Waktu Pembaruan:2009-07-02 17:13:11
Gunakan JSP untuk membaca informasi klien
Silakan baca kode berikut. Jika persyaratan penggunaan Anda berbeda, kode ini dapat dengan mudah dimodifikasi. Kode-kode ini memungkinkan Anda memperoleh:
Perusahaan perusahaan, nama pengguna, versi, versi utama, versi minor
Sistem operasi (belum selesai!), bahasa, lokal, dll.
Buat file JSP baru:
Silakan tambahkan file kelas berikut ke classpath (Anda perlu membuat struktur direktori yang sama - de.hunsicker.http.util, tentu saja Anda juga dapat menyesuaikan sendiri nama paketnya!):
paket de.hunsicker.http.util;
import java.util.*;
import javax.servlet.*;
impor javax.servlet.http.*;
Browser kelas publik memperluas HttpServlet
{
permintaan HttpServletRequest yang dilindungi;
sesi HttpSession yang dilindungi;
Agen pengguna String yang dilindungi;
perusahaan String yang dilindungi; // Firmenname des Herstellers
nama String yang dilindungi; // Bezeichnung des Browsers
versi String yang dilindungi; // Versi
Versi utama String yang dilindungi; // Hauptversion
dilindungi String minorVersion; // Unterversion
os String yang dilindungi; // Betriebssystem
bahasa String yang dilindungi = "de"; // Standar Sprachcode
lokal yang dilindungi; // Objek-Objek Lokal dengan tindakan yang sebenarnya
// Spracheinstellungen
private Hashtable yang didukungBahasa; // Untersttzte Sprachen
Browser publik (permintaan HttpServletRequest, sesi HttpSession)
{
ini.inisialisasi();
this.request = permintaan;
this.session = sesi;
this.setUserAgent(this.request.getHeader("Agen-Pengguna"));
ini.setPerusahaan();
ini.setName();
ini.setVersion();
ini.setMainVersion();
ini.setMinorVersion();
ini.setOs();
ini.setBahasa();
ini.setLocale();
}
inisialisasi kekosongan publik()
{
this.supportedLanguages = Hashtable baru(2);
this.supportedLanguages.put("en", "");
this.supportedLanguages.put("de", "");
}
kekosongan publik setUserAgent(String httpUserAgent)
{
this.userAgent = httpUserAgent.toLowerCase();
}
kekosongan pribadi setPerusahaan()
{
jika (ini.userAgent.indexOf("msie") > -1)
{
this.perusahaan = "Microsoft";
}
else if (ini.userAgent.indexOf("opera") > -1)
{
this.company = "Perangkat Lunak Opera";
}
else if (ini.userAgent.indexOf("mozilla") > -1)
{
this.perusahaan = "Komunikasi Netscape";
}
kalau tidak
{
this.perusahaan = "tidak diketahui";
}
}
/**
* Liefert den Firmennamen des Herstellers des verwendeten Browser.
*/
String publik getCompany()
{
kembalikan this.company;
}
kekosongan pribadi setName()
{
if (perusahaan ini == "Microsoft")
{
this.nama = "Microsoft Internet Explorer";
}
else if (perusahaan ini == "Netscape Communications")
{
this.nama = "Netscape Navigator";
}
else if (perusahaan ini == "Operasoftware")
{
this.nama = "Operasoftware Opera";
}
kalau tidak
{
this.name = "tidak diketahui";
}
}
/**
* Liefert den Namen des verwendeten Browser.
*/
GetName String publik()
{
kembalikan nama ini;
}
kekosongan pribadi setVersion()
{
int tmpPos;
String tmpString;
if (perusahaan ini == "Microsoft")
{
String str = ini.userAgent.substring(ini.userAgent.indexOf("msie") + 5);
this.version = str.substring(0, str.indexOf(";"));
}
kalau tidak
{
tmpString = (ini.userAgent.substring(tmpPos = (ini.userAgent.indexOf("/")) + 1, tmpPos + ini.userAgent.indexOf(" "))).trim();
this.version = tmpString.substring(0, tmpString.indexOf(" "));
}
}
/**
* Liefert die Versionsnummer des verwendeten Browser.
*/
GetVersion String publik()
{
kembalikan ini.versi;
}
kekosongan pribadi setMainVersion()
{
this.mainVersion = this.version.substring(0, this.version.indexOf("."));
}
/**
* Liefert die Hauptversionsnummer des verwendeten Browser.
*/
String publik getMainVersion()
{
kembalikan ini.mainVersion;
}
kekosongan pribadi setMinorVersion()
{
this.minorVersion = this.version.substring(this.version.indexOf(".") + 1).trim();
}
/**
* Liefert die Unterversionsnummer des verwendeten Browser.
*/
String publik getMinorVersion()
{
kembalikan ini.minorVersion;
}
kekosongan pribadi setOs()
{
jika (ini.userAgent.indexOf("win") > -1)
{
if (ini.userAgent.indexOf("windows 95") > -1 || this.userAgent.indexOf("win95") > -1)
{
this.os = "Windows 95";
}
if (ini.userAgent.indexOf("windows 98") > -1 || this.userAgent.indexOf("win98") > -1)
{
this.os = "Windows 98";
}
if (ini.userAgent.indexOf("windows nt") > -1 || this.userAgent.indexOf("winnt") > -1)
{
this.os = "Windows NT";
}
if (ini.userAgent.indexOf("win16") > -1 || this.userAgent.indexOf("windows 3.") > -1)
{
this.os = "Windows 3.x";
}
}
}
/**
* Liefert den Namen des Betriebssystems.
*/
String publik getOs()
{
kembalikan ini.os;
}
kekosongan pribadi setLanguage()
{
String prefLanguage = this.request.getHeader("Terima-Bahasa");
jika (Bahasa Pref! = null)
{
Bahasa string = null;
StringTokenizer st = StringTokenizer baru(prefLanguage, ",");
int elemen = st.countTokens();
untuk (int idx = 0; elemen idx; idx++)
{
if (ini.supportedLanguages.containsKey((bahasa = st.nextToken())))
{
this.bahasa = ini.parseLocale(bahasa);
}
}
}
}
/*
* Fungsi fungsi dari setLanguage().
*/
parseLocale String pribadi (Bahasa string)
{
StringTokenizer st = new StringTokenizer(bahasa, "-");
jika (st.countTokens() == 2)
{
kembalikan st.nextToken();
}
kalau tidak
{
bahasa kembali;
}
}
/**
* Liefert das Lönderkürzel der vom Benutzer
* bevorzugten Sprache.
*/
String publik getLanguage()
{
kembalikan ini.bahasa;
}
kekosongan pribadi setLocale()
{
this.locale = Lokal baru(ini.bahasa, "");
}
/**
* Liefert ein Locale-Objekt mit der Sprach-Prferenz des verwendeten Browsers
*/
getLokal Lokal publik()
{
kembalikan this.locale;
}
}