最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用JSP讀取客戶(hù)端信息

 更新時(shí)間:2006年10月13日 00:00:00   作者:  
使用JSP讀取客戶(hù)端信息

  請(qǐng)閱讀以下代碼。如果你的使用要求不同,可對(duì)這些代碼加以很方便的修改。這些代碼可以使你獲得:
公司company, 用戶(hù)name,版本version,main version,minor version
操作系統(tǒng)(未完成!),語(yǔ)言language,locale等。

建立一個(gè)新的JSP文件:




請(qǐng)將下列class文件加入classpath (你要建立同樣的目錄結(jié)構(gòu)-- de.hunsicker.http.util,當(dāng)然也可以自己調(diào)節(jié)包的名稱(chēng)。!):




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;
}
}



相關(guān)文章

  • JSP技術(shù)實(shí)現(xiàn)動(dòng)態(tài)頁(yè)面到靜態(tài)頁(yè)面的方法

    JSP技術(shù)實(shí)現(xiàn)動(dòng)態(tài)頁(yè)面到靜態(tài)頁(yè)面的方法

    實(shí)現(xiàn)動(dòng)態(tài)頁(yè)面到靜態(tài)頁(yè)面以減小數(shù)據(jù)庫(kù)與服務(wù)器的壓力和負(fù)擔(dān),這是很多實(shí)際開(kāi)發(fā)應(yīng)用工作當(dāng)中的一個(gè)理想的解決辦法,那么本文就向你講解如何實(shí)現(xiàn)實(shí)現(xiàn)動(dòng)態(tài)頁(yè)面到靜態(tài)頁(yè)面的方案。
    2016-10-10
  • jsp中為表格添加水平滾動(dòng)條的方法

    jsp中為表格添加水平滾動(dòng)條的方法

    下面小編就為大家?guī)?lái)一篇jsp中為表格添加水平滾動(dòng)條的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-09-09
  • struts2 spring整合fieldError問(wèn)題

    struts2 spring整合fieldError問(wèn)題

    用到了校驗(yàn)框架,在jsp頁(yè)面校驗(yàn)失敗一次后,無(wú)論再次輸入正確與否都跳轉(zhuǎn)不到except page。
    2009-06-06
  • Jsp自定義標(biāo)簽和方法詳解

    Jsp自定義標(biāo)簽和方法詳解

    這篇文章主要介紹了Jsp自定義標(biāo)簽和方法詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • JSP出現(xiàn)中文亂碼問(wèn)題解決方法詳解

    JSP出現(xiàn)中文亂碼問(wèn)題解決方法詳解

    這篇文章主要介紹了JSP出現(xiàn)中文亂碼問(wèn)題解決方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • JSP實(shí)用教程之簡(jiǎn)易文件上傳組件的實(shí)現(xiàn)方法(附源碼)

    JSP實(shí)用教程之簡(jiǎn)易文件上傳組件的實(shí)現(xiàn)方法(附源碼)

    文件上傳是我們?cè)谌粘i_(kāi)發(fā)中經(jīng)常遇到的一個(gè)功能,下面這篇文章主要給大家介紹了關(guān)于JSP實(shí)用教程之簡(jiǎn)易文件上傳組件的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面來(lái)一起看看吧。
    2017-07-07
  • jsp中文亂碼問(wèn)題的簡(jiǎn)單解決方法

    jsp中文亂碼問(wèn)題的簡(jiǎn)單解決方法

    這篇文章主要為大家介紹了jsp中文亂碼問(wèn)題的簡(jiǎn)單解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • 實(shí)例講解JSP Model2體系結(jié)構(gòu)(上)

    實(shí)例講解JSP Model2體系結(jié)構(gòu)(上)

    實(shí)例講解JSP Model2體系結(jié)構(gòu)(上)...
    2006-10-10
  • 如何在jsp界面中插入圖片

    如何在jsp界面中插入圖片

    這篇文章主要介紹了如何在jsp界面中插入圖片,文章通過(guò)示例代碼和運(yùn)行結(jié)果圖介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Windows下JSP開(kāi)發(fā)環(huán)境的配置

    Windows下JSP開(kāi)發(fā)環(huán)境的配置

    Windows下JSP開(kāi)發(fā)環(huán)境的配置...
    2006-10-10

最新評(píng)論

乌审旗| 云安县| 中宁县| 上饶县| 霍林郭勒市| 宁城县| 新乐市| 贵港市| 杭州市| 徐州市| 延津县| 湘西| 安徽省| 项城市| 聂拉木县| 汾西县| 长白| 汪清县| 固始县| 洪泽县| 托里县| 新民市| 大丰市| 台北县| 富平县| 会宁县| 白河县| 新丰县| 隆安县| 凤阳县| 榆社县| 介休市| 乐山市| 临邑县| 顺昌县| 石门县| 蓝田县| 大余县| 来宾市| 兴宁市| 西丰县|