使用JSP读取客户端信息

js|客户端

  请阅读以下代码。如果你的使用要求不同,可对这些代码加以很方便的修改。这些代码可以使你获得:
公司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;
}
}

时间: 2024-10-27 14:09:39

使用JSP读取客户端信息的相关文章

使用JSP读取客户端信息_JSP编程

使用JSP读取客户端信息 请阅读以下代码.如果你的使用要求不同,可对这些代码加以很方便的修改.这些代码可以使你获得: 公司company, 用户name,版本version,main version,minor version 操作系统(未完成!),语言language,locale等. 建立一个新的JSP文件: 请将下列class文件加入classpath (你要建立同样的目录结构-- de.hunsicker.http.util,当然也可以自己调节包的名称.!): package de.hu

JSP读取客户端CA证书的问题

问题描述 TOMCAT配置如下:<Connectorport="8443"maxHttpHeaderSize="8192"maxThreads="150"minSpareThreads="25"maxSpareThreads="75"enableLookups="false"disableUploadTimeout="true"acceptCount="

java这个简单的服务器我要如何读取客户端的输入信息?

问题描述 java这个简单的服务器我要如何读取客户端的输入信息? import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.net.InetSocketAddress;import java

数字认证-jsp读取usb-key的数据内容

问题描述 jsp读取usb-key的数据内容 如何读取USB KEY里面的数字证书的信息,以前没有接触过这块,请各位高手帮忙解答下. USB KEY是公安部的,我只是想读取里面的相关信息,比如姓名,警号,身份证号码(当然这些信息在USB KEY里面都存在的),然后登陆网站的时候读取这些信息,把它写到数据库里(相当于实名制访问).只是读取不需要验证. 解决方案 公安部的pki.pmi 我所了解的用的是吉大正元的证书应用管理系统,吉大正元提供了相关的服务端包和开发支持包 我知道有java和vc的支持

JS读取cookies信息(记录用户名)_javascript技巧

首先,在用户提交评论后,让客户端cookies记录相关值,例如:asp下的cookies赋值方式采用下面的这样的语句: 复制代码 代码如下: response.cookies("username")="name" response.cookies("username").expires=Date+30 通过以上asp程序给cookies赋值.如何在静态页html读取这个cookies,并且显示在用户?因为是生成了html,我们无法再利用asp程序

asp.net 服务器读取数据库信息生成 excel,然后保存到服务器的临时文件夹下

问题描述 asp.net服务器读取数据库信息生成excel,然后保存到服务器的临时文件夹下,这个怎么实现啊?郁闷了.怎么弄.那个文件都会在客户端输出下载.我只需要保存到服务器的目录下就行了. 解决方案 解决方案二:1.用ExcelCOM生成:2.或者找个第3方生成Excel的比如POI解决方案三: 解决方案四:C#导出Excel的函数(可根据实际需要进行相应修改)//导出Excel的方法privatevoidExportExcel(){DataSetds=dtsSelect;//数据源if(ds

jsp 读取地址栏参数

/* 分析:当调用request.getParameter()函数时,会自动进行一次URI的解码过程, 调用时内置的解码过程会导致乱码出现. 而URI 编码两次后,request.getParameter()函数得到的是原信息URI编码一次的内容. 再用可控的解码函数 java.net.URLDecoder.decode()就可解出原始的正确的信息. */ jsp 读取地址栏参数 var params = encodeURI(encodeURI("method=post&filed=hi

jsp实现将信息放入xml中的方法_JSP编程

本文实例讲述了jsp实现将信息放入xml中的方法.分享给大家供大家参考,具体如下: 一.jsp代码: 省: <select id="province" name="province" onchange="jsSubmit()"> <option value="北京" selected="selected">北京</option> <option value=&quo

jsp页面-JSP读取数据库保存的图片

问题描述 JSP读取数据库保存的图片 数据库有张指纹表专门用来保存指纹图片(10个手指头),现在想要在JSP页面上显示某个人的10个手指的指纹图片.请教各位大神如何实现? 解决方案 JSP页面代码: <img src="personAction_showByID.action" title="tt" style="width: 500px; height: 700px;"> action中对应代码 public String show