如何使用JSP读取客户端信息

人的外表的优美和纯洁,应是他内心的优美和纯洁的表现。在活生生的现实里有很多美的事物,或者更确切地说,一切美的事物只能包括在活生生的现实里。
使用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; } }

以上就是如何使用JSP读取客户端信息。我们最大的悲哀,是迷茫地走在路上,看不到前面的希望;我们最坏的习惯,是苟安于当下生活,不知道明天的方向。更多关于如何使用JSP读取客户端信息请关注haodaima.com其它相关文章!

标签: JSP