• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    使用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如何获取客户端真实IP地址
    • JSP自定义标签获取用户IP地址的方法
    • JSP 获取真实IP地址的代码
    • jsp实现从服务器下载xls文件到客户端的方法
    • JSP入门教程之客户端验证、常用输出方式及JSTL基本用法
    • JSP中实现判断客户端手机类型并跳转到app下载页面
    • jsp 获取客户端的浏览器和操作系统信息
    • jsp获取客户端IP地址的方法
    上一篇:利用JSP建立Web站点
    下一篇:JSP读取文件实例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    使用JSP读取客户端信息 使用,JSP,读取,客户端,信息,