JSPCN主页 | JSP空间 | 网站制作 | JSP下载 | JSP论坛 | JSP教程 | 关于JSPCN | 联系我们
JSP虚拟主机,jsp空间,java空间,java虚拟空间,详细请点击进入
做最专业的JSP中文网站 当前位置首页--JSP技术--JSP其他  
文章搜索:
关键字 标题
  
JSP中文网内容管理系统(JCMS)
JSP虚拟主机
网络笔记本
网摘,图片,笔记收藏
虚拟服务器

JSPCN文章目录分类
JSP配置[219]JSP基础[136]
中文问题[69]上传问题[27]
JAVABEAN[46]数据库[212]
文件操作[126]图片声音[17]
JSP其他[57]时间相关[16]
JAVAMAIL[72]STRUTS[144]
开发工具[28]教程系列[157]
JSP实例[89]
JAVA基础[421]APPLET[78]
JAVA网络[179]Applica[115]
Servlet[98]XML[163]
J2ME[257]J2EE[374]
考试相关[63]JAVA线程[90]
EJB[261]Swing[26]
Java API[141]声音图片[28]
异常处理[33]JAVA实例[290]
JAVA类[139]SUN[89]
Hibernate[6]JMX[8]
Spring[34]
本版推荐文章 
本版热点文章 
相关文章链接 
 
使用JSP读取客户端信息
作者:Unkown     文章来源:www.knowsky.com
访问次数:1969次     加入时间:2004年03月25日
使用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; 


Copyright © 2002-2005 JSPCN.net. All rights reserved.
JSP中文网    备案序号:蜀ICP备05001583号
成都恒海科技发展有限公司    成都市一环路南二段6号新瑞楼三楼8号