<%=request.getRemoteAddr() %>
解决方案 »
- div隐藏与展现
- JSP文档
- spring 配置问题 求解 急急、、、、、
- 在 struts 2 如何获得 datetimepicker 中的值
- webservices开发报错
- sql server使用全局临时表的Jsp页面出现 TDSExecuteRequest(TDSRequest).processReply(BaseWarning
- 这样的代码得不到值 ,onclick="save_onclick('basic','<%=ls_source%>')" 为什么?
- 该死的乱码
- 高分求教:如何在Solaris下配置tomcat?
- 请JSP高手推荐几本学习JSP的书,或者web站点?多谢
- 使用jspSmartUpload组件上传文件是不是有大小限制?
- 请教独立运行的tomcat能不能开两个服务?
公司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; } }
请阅读以下代码。如果你的使用要求不同,可对这些代码加以很方便的修改。这些代码可以使你获得:
公司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;
}
}
解决了么??