使用JSP读取客户端信息
请阅读以下代码。如果你的使用要求不同,可对这些代码加以很方便的修改。这些代码可以使你获得:
公司company, 用户name,版本version,main version,minor version
操作系统(未完成!),语言language,locale等。
建立一个新的JSP文件:
请将下列class文件加入classpath (你要建立同样的目录结构-- de.hunsicker.http.util,当然也可以自己调节包的名称。!):
package de.hunsicker.http.util;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Browser extends HttpServlet
{
protected HttpServletRequest request;
protected HttpSession session;
protected String userAgent;
protected String company; // Firmenname des Herstellers
protected String name; // Bezeichnung des Browsers
protected String version; // Version
protected String mainVersion; // Hauptversion
protected String minorVersion; // Unterversion
protected String os; // Betriebssystem
protected String language = \"de\"; // Sprachcode Standard
protected Locale locale; // Locale-Objekt mit den aktuellen
// Spracheinstellungen
private Hashtable supportedLanguages; // Untersttzte Sprachen
public Browser(HttpServletRequest request, HttpSession session)
{
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();
}
public void initialize()
{
this.supportedLanguages = new Hashtable(2);
this.supportedLanguages.put(\"en\", \"\");
this.supportedLanguages.put(\"de\", \"\");
}
public void setUserAgent(String httpUserAgent)
{
this.userAgent = httpUserAgent.toLowerCase();
}
private void setCompany()
{
if (this.userAgent.indexOf(\"msie\") > -1)
{
this.company = \"Microsoft\";
}
else if (this.userAgent.indexOf(\"opera\") > -1)
{
this.company = \"Opera Software\";
}
else if (this.userAgent.indexOf(\"mozilla\") > -1)
{
this.company = \"Netscape Communications\";
}
else
{
this.company = \"unknown\";
}
}
/**
* Liefert den Firmennamen des Herstellers des verwendeten Browsers.
*/
public String getCompany()
{
return this.company;
}
private void setName()
{
if (this.company == \"Microsoft\")
{
this.name = \"Microsoft Internet Explorer\";
}
else if (this.company == \"Netscape Communications\")
{
this.name = \"Netscape Navigator\";
}
else if (this.company == \"Operasoftware\")
{
this.name = \"Operasoftware Opera\";
}
else
{
this.name = \"unknown\";
}
}
/**
* Liefert den Namen des verwendeten Browsers.
*/
public String getName()
{
return this.name;
}
private void setVersion()
{
int tmpPos;
String tmpString;
if (this.company == \"Microsoft\")
{
String str = this.userAgent.substring(this.userAgent.indexOf(\"msie\") + 5);
this.version = str.substring(0, str.indexOf(\";\"));
}
else
{
tmpString = (this.userAgent.substring(tmpPos = (this.userAgent.indexOf(\"/\")) + 1, tmpPos + this.userAgent.indexOf(\" \"))).trim();
this.version = tmpString.substring(0, tmpString.indexOf(\" \"));
}
}
/**
* Liefert die Versionsnummer des verwendeten Browsers.
*/
public String getVersion()
{
return this.version;
}
private void setMainVersion()
{
this.mainVersion = this.version.substring(0, this.version.indexOf(\".\"));
}
/**
* Liefert die Hauptversionsnummer des verwendeten Browsers.
*/
public String getMainVersion()
{
return this.mainVersion;
}
private void setMinorVersion()
{
this.minorVersion = this.version.substring(this.version.indexOf(\".\") + 1).trim();
}
/**
* Liefert die Unterversionsnummer des verwendeten Browsers.
*/
public String getMinorVersion()
{
return this.minorVersion;
}
private void setOs()
{
if (this.userAgent.indexOf(\"win\") > -1)
{
if (this.userAgent.indexOf(\"windows 95\") > -1 || this.userAgent.indexOf(\"win95\") > -1)
{
this.os = \"Windows 95\";
}
if (this.userAgent.indexOf(\"windows 98\") > -1 || this.userAgent.indexOf(\"win98\") > -1)
{
this.os = \"Windows 98\";
}
if (this.userAgent.indexOf(\"windows nt\") > -1 || this.userAgent.indexOf(\"winnt\") > -1)
{
this.os = \"Windows NT\";
}
if (this.userAgent.indexOf(\"win16\") > -1 || this.userAgent.indexOf(\"windows 3.\") > -1)
{
this.os = \"Windows 3.x\";
}
}
}
/**
* Liefert den Namen des Betriebssystems.
*/
public String getOs()
{
return this.os;
}
private void setLanguage()
{
String prefLanguage = this.request.getHeader(\"Accept-Language\");
if (prefLanguage != null)
{
String language = null;
StringTokenizer st = new StringTokenizer(prefLanguage, \",\");
int elements = st.countTokens();
for (int idx = 0; idx elements; idx++)
{
if (this.supportedLanguages.containsKey((language = st.nextToken())))
{
this.language = this.parseLocale(language);
}
}
}
}
/*
* Hilfsfunktion fr setLanguage().
*/
private String parseLocale(String language)
{
StringTokenizer st = new StringTokenizer(language, \"-\");
if (st.countTokens() == 2)
{
return st.nextToken();
}
else
{
return language;
}
}
/**
* Liefert das L?nderkürzel der vom Benutzer
* bevorzugten Sprache.
*/
public String getLanguage()
{
return this.language;
}
private void setLocale()
{
this.locale = new Locale(this.language, \"\");
}
/**
* Liefert ein Locale-Objekt mit der Sprach-Prferenz des verwendeten Browsers
*/
public Locale getLocale()
{
return this.locale;
}
}
请阅读以下代码。如果你的使用要求不同,可对这些代码加以很方便的修改。这些代码可以使你获得:
公司company, 用户name,版本version,main version,minor version
操作系统(未完成!),语言language,locale等。
建立一个新的JSP文件:
请将下列class文件加入classpath (你要建立同样的目录结构-- de.hunsicker.http.util,当然也可以自己调节包的名称。!):
package de.hunsicker.http.util;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Browser extends HttpServlet
{
protected HttpServletRequest request;
protected HttpSession session;
protected String userAgent;
protected String company; // Firmenname des Herstellers
protected String name; // Bezeichnung des Browsers
protected String version; // Version
protected String mainVersion; // Hauptversion
protected String minorVersion; // Unterversion
protected String os; // Betriebssystem
protected String language = \"de\"; // Sprachcode Standard
protected Locale locale; // Locale-Objekt mit den aktuellen
// Spracheinstellungen
private Hashtable supportedLanguages; // Untersttzte Sprachen
public Browser(HttpServletRequest request, HttpSession session)
{
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();
}
public void initialize()
{
this.supportedLanguages = new Hashtable(2);
this.supportedLanguages.put(\"en\", \"\");
this.supportedLanguages.put(\"de\", \"\");
}
public void setUserAgent(String httpUserAgent)
{
this.userAgent = httpUserAgent.toLowerCase();
}
private void setCompany()
{
if (this.userAgent.indexOf(\"msie\") > -1)
{
this.company = \"Microsoft\";
}
else if (this.userAgent.indexOf(\"opera\") > -1)
{
this.company = \"Opera Software\";
}
else if (this.userAgent.indexOf(\"mozilla\") > -1)
{
this.company = \"Netscape Communications\";
}
else
{
this.company = \"unknown\";
}
}
/**
* Liefert den Firmennamen des Herstellers des verwendeten Browsers.
*/
public String getCompany()
{
return this.company;
}
private void setName()
{
if (this.company == \"Microsoft\")
{
this.name = \"Microsoft Internet Explorer\";
}
else if (this.company == \"Netscape Communications\")
{
this.name = \"Netscape Navigator\";
}
else if (this.company == \"Operasoftware\")
{
this.name = \"Operasoftware Opera\";
}
else
{
this.name = \"unknown\";
}
}
/**
* Liefert den Namen des verwendeten Browsers.
*/
public String getName()
{
return this.name;
}
private void setVersion()
{
int tmpPos;
String tmpString;
if (this.company == \"Microsoft\")
{
String str = this.userAgent.substring(this.userAgent.indexOf(\"msie\") + 5);
this.version = str.substring(0, str.indexOf(\";\"));
}
else
{
tmpString = (this.userAgent.substring(tmpPos = (this.userAgent.indexOf(\"/\")) + 1, tmpPos + this.userAgent.indexOf(\" \"))).trim();
this.version = tmpString.substring(0, tmpString.indexOf(\" \"));
}
}
/**
* Liefert die Versionsnummer des verwendeten Browsers.
*/
public String getVersion()
{
return this.version;
}
private void setMainVersion()
{
this.mainVersion = this.version.substring(0, this.version.indexOf(\".\"));
}
/**
* Liefert die Hauptversionsnummer des verwendeten Browsers.
*/
public String getMainVersion()
{
return this.mainVersion;
}
private void setMinorVersion()
{
this.minorVersion = this.version.substring(this.version.indexOf(\".\") + 1).trim();
}
/**
* Liefert die Unterversionsnummer des verwendeten Browsers.
*/
public String getMinorVersion()
{
return this.minorVersion;
}
private void setOs()
{
if (this.userAgent.indexOf(\"win\") > -1)
{
if (this.userAgent.indexOf(\"windows 95\") > -1 || this.userAgent.indexOf(\"win95\") > -1)
{
this.os = \"Windows 95\";
}
if (this.userAgent.indexOf(\"windows 98\") > -1 || this.userAgent.indexOf(\"win98\") > -1)
{
this.os = \"Windows 98\";
}
if (this.userAgent.indexOf(\"windows nt\") > -1 || this.userAgent.indexOf(\"winnt\") > -1)
{
this.os = \"Windows NT\";
}
if (this.userAgent.indexOf(\"win16\") > -1 || this.userAgent.indexOf(\"windows 3.\") > -1)
{
this.os = \"Windows 3.x\";
}
}
}
/**
* Liefert den Namen des Betriebssystems.
*/
public String getOs()
{
return this.os;
}
private void setLanguage()
{
String prefLanguage = this.request.getHeader(\"Accept-Language\");
if (prefLanguage != null)
{
String language = null;
StringTokenizer st = new StringTokenizer(prefLanguage, \",\");
int elements = st.countTokens();
for (int idx = 0; idx elements; idx++)
{
if (this.supportedLanguages.containsKey((language = st.nextToken())))
{
this.language = this.parseLocale(language);
}
}
}
}
/*
* Hilfsfunktion fr setLanguage().
*/
private String parseLocale(String language)
{
StringTokenizer st = new StringTokenizer(language, \"-\");
if (st.countTokens() == 2)
{
return st.nextToken();
}
else
{
return language;
}
}
/**
* Liefert das L?nderkürzel der vom Benutzer
* bevorzugten Sprache.
*/
public String getLanguage()
{
return this.language;
}
private void setLocale()
{
this.locale = new Locale(this.language, \"\");
}
/**
* Liefert ein Locale-Objekt mit der Sprach-Prferenz des verwendeten Browsers
*/
public Locale getLocale()
{
return this.locale;
}
}
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月23日
2024年11月23日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]