使用JSP读取客户端信息

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
使用JSP读取客户端信息


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

JavaBean编程思想-读取数据库信息 前面我也说过,JavaBean就是实现了:把html代码和java代码分开,在html只需要调用该java代码就行了,这就叫JavaBean。     现在给大家分享一个具体的示例-读取数据库,下面为具体代码+注释 首先我们来看看JDBC(详情见另一篇博客JDBC编程基本)直接连接数据库显示在页面上的情况: 学号姓名院系 <% 阅读详情

相关推荐

使用JSP读取客户端信息--Java自学网

使用JSP读取客户端信息   请阅读以下代码。如果你的使用要求不同,可对这些代码加以很方便的修改。这些代码可以使你获得: 公司company, 用户name,版本version,main version,minor version 操作系统(未完成!),语言language,locale等。 建立一个新的JSP文件: 请将下列class文件加入class

230

JSP 客户端请求

JSP 客户端请求 当浏览器请求一个网页时,它会向网络服务器发送一系列不能被直接读取信息,因为这些信息是作为HTTP信息头的一部分来传送的。您可以查阅HTTP协议来获得更多的信息。 下表列出了浏览器端信息头的一些重要内容,在以后的网络编程中将会经常见到这些信息信息 描述 Accept 指定浏览器或其他客户端可以处理的MIME类型。它的值

manshiai的博客 292

如何在jsp读取客户端的excel文件中的数据

我要调用JExcelApi   读取用户在客户端选择的Excel中的文件中的数据,     我是这样做的:       首先做一个页面upLoadExcel.jsp让用户选择本地的Excel文件,我就是用的上传的那个页面:                                                                   Fil

2824

JSP内置对象request的方法的使用

/* request是jsp的内置对象 与 HttpServletRequest类相关  实现了 javax.servlet.ServletRequest接口  用来处理用户提交的数据   */ Java.util.*"%>          this is  a jsp request test     请求信息如下:  您的本地IP是:  您的主机名字是

zyr951676434的博客 353

JSP开发之JSP Cookie 处理(cookie简介&设置cookie)

Cookie是存储在客户机的文本文件,它们保存了大量轨迹信息,在servlet技术基础上,JSP显然能够提供对HTTP cookie的支持。通常有三个步骤来识别回头客: 服务器脚本发送一系列cookie至浏览器。比如名字,年龄,ID号码等等。 浏览器在本地机中存储这些信息,以备不时之需。 当下一次浏览器发送任何请求至服务器时,它会同时将这些cookie信息发送给服务器,然后服务器使用这些信息...

luyaran的博客 3348

查询客户端IP信息

查询客户端IP信息你的IP地址是127.0.0.1你的主机端口是11198 %@page contentType="text/html;charset=gb2312" language="java"%>查询客户端IP信息查询客户端IP信息你的IP地址是你的主机端口是 

我在哈佛念过佛、我在牛津放过牛、我在剑桥建过桥、我在麻省理工理过发。- 程序员之家 493

servlet中怎样接收jsp的form表单提交的内容

servlet中怎样接收jsp的form表单提交的内容 不用框架,不用request.getParameter()和getAtriatute() 看以查看一下servet的api,getParameterNames(),getParameterMap(),getInputStream(),getAttributeNames() 、getParameterValues() 等 package...

iteye_19934的博客 320

JSP的Cookie操作

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

ybwvpn的博客 283

JSP的Cookie处理

以下内容引用自http://wiki.jikexueyuan.com/project/jsp/Cookies-handling.html: Cookies是存储在客户端计算机的文本文件,保存各种跟踪目标的信息JSP使用底层Servlet技术透明地支持HTTP Cookies。 确定返回用户有三个步骤: 服务器脚本向浏览器发送的一系列Cookies。例如姓名、年龄、身份证号码等。 ...

weixin_33939843的博客 70

JSP Cookie的使用

JSP Cookie的使用

m0_69505153的博客 1470

java 文件下载 jsp_用jsp实现文件下载的方法--jsp技术

核心提示:以下代码保存为down.jsp使用方法:down.jsp?file=下载文件名 %//注意符号%之前不能有回车,否则下载的文件第一个字符就是回车,可能导致文件格式非法 String filename...以下代码保存为down.jsp使用方法:down.jsp?file=下载文件名String filename = "";String fileFullName="";int ch;i...

weixin_35977770的博客 569

JSP引擎的内置对象Request对象来获取客户提交的信息

Example3_4.jsp pageEncoding="UTF-8"%> Request对象 name="submit" /> tree2.jsp pageEncoding="UTF-8"%> Insert title here 客户使用的协议是: String protocol = req

jake_Aaron的博客 734

JSP】Cookies 处理

Cookies 处理 Cookies是存储在客户机的文本文件,它们保存了大量轨迹信息。在servlet技术基础上,JSP显然能够提供对HTTP cookies的支持。 通常有三个步骤来识别回头客: 服务器脚本发送一系列cookies至浏览器。比如名字,年龄,ID号码等等。 浏览器在本地机中存储这些信息,以备不时之需。 当下一次浏览器发送任何请求至服务器时,它会同时将这些c

精益求精 791

客户端请求、服务器响应及其HTTP状态码

JSP客户端请求        当浏览器请求一个网页时,它会向网络服务器发送一系列不能被直接读取信息,因为这些信息是作为HTTP信 息头的一部分来传送的。我们可以查阅HTTP协议来获得更多的信息。        下表列出了浏览器端信息头的一些重要内容,在以后的网络编程中将会经常见到这些信息:                (1)HttpServletRequest

错觉 2308

JSP处理session与cookie研究三

定义一个session变量 session.setAttribute("user_name","joan"); 读取一个session的值: String your_name=session.getAttribute("user_name"); 判断一个session是否存在应用: if((String)session.getAttribute("user_id")==null) { ou

大展雄图专栏 659

jsp展示本地excel_如何在jsp页面上打开wordexcel

一、怎么在jsp中打开显示excel需要导出的文件头上加:---------------------------------------------------------------使用OFFice WEB Components---------------------------------------------------------------在页首加上-----------------...

weixin_33606346的博客 997
上一篇: 用jsp编写文件上载
下一篇: 用JavaMail API编写可带附件的邮件发送程序
fxfboy
博客等级 码龄24年 10粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值