欢迎光临
我们一直在努力

使用JSP读取客户端信息-JSP教程,Jsp/Servlet

建站超值云服务器,限时71元/月

使用jsp读取客户端信息

请阅读以下代码。如果你的使用要求不同,可对这些代码加以很方便的修改。这些代码可以使你获得:

公司company, 用户name,版本version,main version,minor version

操作系统(未完成!),语言language,locale等。

建立一个新的jsp文件:

<%@ page language="java" import="de.hunsicker.http.util.*"%>

<%

browser eins = new browser(request, session);

out.println(eins.getversion());

%>

请将下列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;

}

}

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 使用JSP读取客户端信息-JSP教程,Jsp/Servlet
分享到: 更多 (0)

相关推荐

  • 暂无文章