📄 0044.htm
字号:
<html>
<head>
<title>新时代软件教程:操作系统 主页制作 服务器 设计软件 网络技术 编程语言 文字编辑</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
<!--
body, table {font-size: 9pt; font-family: 宋体}
a {text-decoration:none}
a:hover {color: red;text-decoration:underline}
.1 {background-color: rgb(245,245,245)}
-->
</style>
</head>
<p align="center"><script src="../../1.js"></script></a>
<p align="center"><big><strong>使用JSP读取客户端信息</strong></big></p>
<div align="right">(编译/Blueski)</div>
<p><span class=smallFont>
请阅读以下代码。如果你的使用要求不同,可对这些代码加以很方便的修改。这些代码可以使你获得:<br>
公司company, 用户name,版本version,main version,minor version <br>
操作系统(未完成!),语言language,locale等。 <br>
<br>
建立一个新的JSP文件: <br>
<br>
<%@ page language="java" import="de.hunsicker.http.util.*"%><br>
<%<br>
Browser eins = new Browser(request, session);<br>
out.println(eins.getVersion());<br>
%><br>
<br>
请将下列class文件加入classpath (你要建立同样的目录结构-- de.hunsicker.http.util,当然也可以自己调节包的名称。!): <br>
<br>
<br>
<br>
<br>
package de.hunsicker.http.util;<br>
<br>
import java.util.*;<br>
<br>
import javax.servlet.*;<br>
import javax.servlet.http.*;<br>
<br>
public class Browser extends HttpServlet<br>
{<br>
protected HttpServletRequest request;<br>
protected HttpSession session;<br>
<br>
protected String userAgent;<br>
protected String company; // Firmenname des Herstellers<br>
protected String name; // Bezeichnung des Browsers<br>
protected String version; // Version<br>
protected String mainVersion; // Hauptversion<br>
protected String minorVersion; // Unterversion<br>
protected String os; // Betriebssystem<br>
protected String language = "de"; // Sprachcode Standard<br>
protected Locale locale; // Locale-Objekt mit den aktuellen<br>
// Spracheinstellungen<br>
<br>
private Hashtable supportedLanguages; // Untersttzte Sprachen<br>
<br>
public Browser(HttpServletRequest request, HttpSession session)<br>
{<br>
this.initialize();<br>
this.request = request;<br>
this.session = session;<br>
<br>
this.setUserAgent(this.request.getHeader("User-Agent"));<br>
this.setCompany();<br>
this.setName();<br>
this.setVersion();<br>
this.setMainVersion();<br>
this.setMinorVersion();<br>
this.setOs();<br>
this.setLanguage();<br>
this.setLocale();<br>
}<br>
<br>
public void initialize()<br>
{<br>
this.supportedLanguages = new Hashtable(2);<br>
<br>
this.supportedLanguages.put("en", "");<br>
this.supportedLanguages.put("de", "");<br>
}<br>
<br>
public void setUserAgent(String httpUserAgent)<br>
{<br>
this.userAgent = httpUserAgent.toLowerCase();<br>
}<br>
<br>
private void setCompany()<br>
{<br>
if (this.userAgent.indexOf("msie") > -1)<br>
{<br>
this.company = "Microsoft";<br>
}<br>
else if (this.userAgent.indexOf("opera") > -1)<br>
{<br>
this.company = "Opera Software";<br>
}<br>
else if (this.userAgent.indexOf("mozilla") > -1)<br>
{<br>
this.company = "Netscape Communications";<br>
}<br>
else<br>
{<br>
this.company = "unknown";<br>
}<br>
}<br>
<br>
/**<br>
* Liefert den Firmennamen des Herstellers des verwendeten Browsers.<br>
*/<br>
public String getCompany()<br>
{<br>
return this.company;<br>
}<br>
<br>
private void setName()<br>
{<br>
if (this.company == "Microsoft")<br>
{<br>
this.name = "Microsoft Internet Explorer";<br>
}<br>
else if (this.company == "Netscape Communications")<br>
{<br>
this.name = "Netscape Navigator";<br>
}<br>
else if (this.company == "Operasoftware")<br>
{<br>
this.name = "Operasoftware Opera";<br>
}<br>
else<br>
{<br>
this.name = "unknown";<br>
}<br>
}<br>
<br>
/**<br>
* Liefert den Namen des verwendeten Browsers.<br>
*/<br>
public String getName()<br>
{<br>
return this.name;<br>
}<br>
<br>
private void setVersion()<br>
{<br>
int tmpPos;<br>
String tmpString;<br>
<br>
if (this.company == "Microsoft")<br>
{<br>
String str = this.userAgent.substring(this.userAgent.indexOf("msie") + 5);<br>
this.version = str.substring(0, str.indexOf(";"));<br>
}<br>
else<br>
{<br>
tmpString = (this.userAgent.substring(tmpPos = (this.userAgent.indexOf("/")) + 1, tmpPos + this.userAgent.indexOf(" "))).trim();<br>
this.version = tmpString.substring(0, tmpString.indexOf(" "));<br>
}<br>
}<br>
<br>
/**<br>
* Liefert die Versionsnummer des verwendeten Browsers.<br>
*/<br>
public String getVersion()<br>
{<br>
return this.version;<br>
}<br>
<br>
private void setMainVersion()<br>
{<br>
this.mainVersion = this.version.substring(0, this.version.indexOf("."));<br>
}<br>
<br>
/**<br>
* Liefert die Hauptversionsnummer des verwendeten Browsers.<br>
*/<br>
public String getMainVersion()<br>
{<br>
return this.mainVersion;<br>
}<br>
<br>
private void setMinorVersion()<br>
{<br>
this.minorVersion = this.version.substring(this.version.indexOf(".") + 1).trim();<br>
}<br>
<br>
/**<br>
* Liefert die Unterversionsnummer des verwendeten Browsers.<br>
*/<br>
public String getMinorVersion()<br>
{<br>
return this.minorVersion;<br>
}<br>
<br>
private void setOs()<br>
{<br>
if (this.userAgent.indexOf("win") > -1)<br>
{<br>
if (this.userAgent.indexOf("windows 95") > -1 || this.userAgent.indexOf("win95") > -1)<br>
{<br>
this.os = "Windows 95";<br>
}<br>
if (this.userAgent.indexOf("windows 98") > -1 || this.userAgent.indexOf("win98") > -1)<br>
{<br>
this.os = "Windows 98";<br>
}<br>
if (this.userAgent.indexOf("windows nt") > -1 || this.userAgent.indexOf("winnt") > -1)<br>
{<br>
this.os = "Windows NT";<br>
}<br>
if (this.userAgent.indexOf("win16") > -1 || this.userAgent.indexOf("windows 3.") > -1)<br>
{<br>
this.os = "Windows 3.x";<br>
}<br>
}<br>
}<br>
<br>
/**<br>
* Liefert den Namen des Betriebssystems.<br>
*/<br>
public String getOs()<br>
{<br>
return this.os;<br>
}<br>
<br>
private void setLanguage()<br>
{<br>
String prefLanguage = this.request.getHeader("Accept-Language");<br>
<br>
if (prefLanguage != null)<br>
{<br>
String language = null;<br>
StringTokenizer st = new StringTokenizer(prefLanguage, ",");<br>
<br>
int elements = st.countTokens();<br>
<br>
for (int idx = 0; idx elements; idx++)<br>
{<br>
if (this.supportedLanguages.containsKey((language = st.nextToken())))<br>
{<br>
this.language = this.parseLocale(language);<br>
}<br>
}<br>
}<br>
}<br>
<br>
/*<br>
* Hilfsfunktion fr setLanguage().<br>
*/<br>
private String parseLocale(String language)<br>
{<br>
StringTokenizer st = new StringTokenizer(language, "-");<br>
<br>
if (st.countTokens() == 2)<br>
{<br>
return st.nextToken();<br>
}<br>
else<br>
{<br>
return language;<br>
}<br>
}<br>
<br>
/**<br>
* Liefert das L?nderkürzel der vom Benutzer<br>
* bevorzugten Sprache.<br>
*/<br>
public String getLanguage()<br>
{<br>
return this.language;<br>
}<br>
<br>
private void setLocale()<br>
{<br>
this.locale = new Locale(this.language, "");<br>
}<br>
<br>
/**<br>
* Liefert ein Locale-Objekt mit der Sprach-Prferenz des verwendeten Browsers<br>
*/<br>
public Locale getLocale()<br>
{<br>
return this.locale;<br>
}<br>
}
</table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -