JAVA网站制作之利用JSP读取客户端信息
其实你不用Struts,spring这些工具,直接用jsp,servlet能够很方便地写出来,而且,可以根据个人的水平、爱好,有很多方案。而struts,spring这些工具的出来。js|客户端请浏览以下代码。假如你的利用请求分歧,可对这些代码加以很便利的修正。这些代码可使你取得:
公司company,用户name,版本version,mainversion,minorversion
操纵体系(未完成!),言语language,locale等。
创建一个新的JSP文件:
请将以下class文件到场classpath(你要创建一样的目次布局--de.hunsicker.http.util,固然也能够本人调治包的称号。!):
packagede.hunsicker.http.util;
importjava.util.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
publicclassBrowserextendsHttpServlet
{
protectedHttpServletRequestrequest;
protectedHttpSessionsession;
protectedStringuserAgent;
protectedStringcompany;//FirmennamedesHerstellers
protectedStringname;//BezeichnungdesBrowsers
protectedStringversion;//Version
protectedStringmainVersion;//Hauptversion
protectedStringminorVersion;//Unterversion
protectedStringos;//Betriebssystem
protectedStringlanguage="de";//SprachcodeStandard
protectedLocalelocale;//Locale-Objektmitdenaktuellen
//Spracheinstellungen
privateHashtablesupportedLanguages;//UntersttzteSprachen
publicBrowser(HttpServletRequestrequest,HttpSessionsession)
{
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();
}
publicvoidinitialize()
{
this.supportedLanguages=newHashtable(2);
this.supportedLanguages.put("en","");
this.supportedLanguages.put("de","");
}
publicvoidsetUserAgent(StringhttpUserAgent)
{
this.userAgent=httpUserAgent.toLowerCase();
}
privatevoidsetCompany()
{
if(this.userAgent.indexOf("msie")>-1)
{
this.company="Microsoft";
}
elseif(this.userAgent.indexOf("opera")>-1)
{
this.company="OperaSoftware";
}
elseif(this.userAgent.indexOf("mozilla")>-1)
{
this.company="NetscapeCommunications";
}
else
{
this.company="unknown";
}
}
/**
*LiefertdenFirmennamendesHerstellersdesverwendetenBrowsers.
*/
publicStringgetCompany()
{
returnthis.company;
}
privatevoidsetName()
{
if(this.company=="Microsoft")
{
this.name="MicrosoftInternetExplorer";
}
elseif(this.company=="NetscapeCommunications")
{
this.name="NetscapeNavigator";
}
elseif(this.company=="Operasoftware")
{
this.name="OperasoftwareOpera";
}
else
{
this.name="unknown";
}
}
/**
*LiefertdenNamendesverwendetenBrowsers.
*/
publicStringgetName()
{
returnthis.name;
}
privatevoidsetVersion()
{
inttmpPos;
StringtmpString;
if(this.company=="Microsoft")
{
Stringstr=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(""));
}
}
/**
*LiefertdieVersionsnummerdesverwendetenBrowsers.
*/
publicStringgetVersion()
{
returnthis.version;
}
privatevoidsetMainVersion()
{
this.mainVersion=this.version.substring(0,this.version.indexOf("."));
}
/**
*LiefertdieHauptversionsnummerdesverwendetenBrowsers.
*/
publicStringgetMainVersion()
{
returnthis.mainVersion;
}
privatevoidsetMinorVersion()
{
this.minorVersion=this.version.substring(this.version.indexOf(".")+1).trim();
}
/**
*LiefertdieUnterversionsnummerdesverwendetenBrowsers.
*/
publicStringgetMinorVersion()
{
returnthis.minorVersion;
}
privatevoidsetOs()
{
if(this.userAgent.indexOf("win")>-1)
{
if(this.userAgent.indexOf("windows95")>-1||this.userAgent.indexOf("win95")>-1)
{
this.os="Windows95";
}
if(this.userAgent.indexOf("windows98")>-1||this.userAgent.indexOf("win98")>-1)
{
this.os="Windows98";
}
if(this.userAgent.indexOf("windowsnt")>-1||this.userAgent.indexOf("winnt")>-1)
{
this.os="WindowsNT";
}
if(this.userAgent.indexOf("win16")>-1||this.userAgent.indexOf("windows3.")>-1)
{
this.os="Windows3.x";
}
}
}
/**
*LiefertdenNamendesBetriebssystems.
*/
publicStringgetOs()
{
returnthis.os;
}
privatevoidsetLanguage()
{
StringprefLanguage=this.request.getHeader("Accept-Language");
if(prefLanguage!=null)
{
Stringlanguage=null;
StringTokenizerst=newStringTokenizer(prefLanguage,",");
intelements=st.countTokens();
for(intidx=0;idxelements;idx++)
{
if(this.supportedLanguages.containsKey((language=st.nextToken())))
{
this.language=this.parseLocale(language);
}
}
}
}
/*
*HilfsfunktionfrsetLanguage().
*/
privateStringparseLocale(Stringlanguage)
{
StringTokenizerst=newStringTokenizer(language,"-");
if(st.countTokens()==2)
{
returnst.nextToken();
}
else
{
returnlanguage;
}
}
/**
*LiefertdasL?nderkürzeldervomBenutzer
*bevorzugtenSprache.
*/
publicStringgetLanguage()
{
returnthis.language;
}
privatevoidsetLocale()
{
this.locale=newLocale(this.language,"");
}
/**
*LieferteinLocale-ObjektmitderSprach-PrferenzdesverwendetenBrowsers
*/
publicLocalegetLocale()
{
returnthis.locale;
}
}
在性能方面,在windows平台下,.net可能是占强项,要是把.net放在sun开发的操作系统上去运行呢?根本就运行不了,.net对其它操作系统的支持也很弱,性能也可能比不上java。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 是一种为 Internet发展的计算机语言 Java 编程语言的风格十分接近C、C++语言。 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 是一种使网页(Web Page)产生生动活泼画面的语言 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。 http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
页:
[1]