时间: 2021-07-31 作者:daque
正文引见了java servlet编制程序所需的软硬件及情况摆设。只有你有一台安置windows 95/98了的pc机,便不妨依照正文的办法开拓servlet步调了。正文同声给出了经过java servlet向用户的硬盘写入和读取cookie的本领及例程。经过它不妨实行网上罕见的天性化网页、网上购物篮、暗号考证等。 java servlet是运转于web效劳器上的java代码,它不妨接收用户乞求,举行相映的处置,并向用户供给反应。其效率一致于cgi步调,不妨实行网页中很多交互式功效,但比cgi步调功效更高。cookies是用户考察web效劳器时由web效劳器写入用户计划机一定目次的第一小学段消息, java servlet中供给了cookie类,不妨对cookie举行操纵。在一定功夫将cookie写入用户计划机,在须要时可再掏出来运用。 1.软硬件载入 pc机,安置windows 95/98,具备ip地方(即使没有不妨随意配一个)。开拓软硬件有两个:jdk1.3和jswdk1.0.1。 到http://java.sun.com,点击"products & apis”链接,不妨点击载入"javatm 2 sdk, standard edition, v 1.3”。载入后的文献安置到你的计划机上。 jswdk1.0.1惟有763,414 bytes,可从在http://java.sun.com/products/jsp/download.html载入。载入下来的jswdk1_0_1-win.zip用winzip软硬件解收缩至某个目次,如:d:app,该目次下将机动创造一个子目次:jswdk-1.0.1。这时候jswdk 1.0.1便仍旧安置在d:appjswdk-1.0.1目次下了。 2.启用jswdk 1.0.1 翻开一个dos窗口,如次图点击窗口左上角dos图标,采用属性菜单,在接着展示的窗口中式点心击"外存”,在"初始情况”后的下拉菜单中将"机动”改为2816,点击"exit”按钮退出窗口,再从新加入dos窗口。该树立只须要做一次。 在该dos窗口中运转如次dos吩咐树立好情况变量: set classpath=c:jdk1.3bin;. set path=c:jdk1.3bin;c:windows;c:windowscommand 即使你的jdk 1.3和windows操纵体例安置在其余目次,dos吩咐中的目次称呼应作相映窜改。 而后在该dos窗口顶用cd吩咐加入jswdk 1.0.1安置目次(如d:appjswdk-1.0.1)运转startserver.bat即可。 提防: 对于jdk1.3,即正文所述的情况,需窜改startserver.bat,将源文献中的 start java com.sun.web.shell.startup %1 %2 %3 %4 %5 %6 %7 %8 %9 rem java com.sun.web.shell.startup %1 %2 %3 %4 %5 %6 %7 %8 %9 改为: rem start java com.sun.web.shell.startup %1 %2 %3 %4 %5 %6 %7 %8 %9 java com.sun.web.shell.startup %1 %2 %3 %4 %5 %6 %7 %8 %9 若运用的是老本子的jdk1.2,不须要窜改startserver.bat,实行后会展示另一个dos窗口。 运转后表露一串字符串,结果表露endpoint created: localhost/127.0.0.1:8080。表白平常启用结束。但它不扶助数据库中笔墨段和华文值的查问。 翻开一个欣赏器,输出:http://你的呆板ip地方:8080,这时候欣赏器中表露有缺省的页面,在该页面中可察看servlet例子。 java servlet中供给了cookie类,其结构器有两个参数,辨别代办cookie的名字和值。cookie类中供给了百般本领树立cookie的属性,如经过setmaxage( )本领不妨树立cookie的存在功夫。若存在功夫为负值,代办欣赏器封闭cookie即消逝。存在功夫为0,代办简略cookie,存在功夫为正数,代办cookie生存几何秒。 同声servlet中的httpservletresponse类供给了addcookie()本领不妨将创造好的cookie写入用户计划机。 如底下的代码可向用户的计划机写入两个cookie,一个称呼为my1,值为hi1,另一个称呼为my2,值为hi2 import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class xx extends httpservlet { public void service(httpservletrequest rq, httpservletresponse rp) throws servletexception,ioexception { cookie c; c=new cookie("my1","hi1"); c.setmaxage(100*60); rp.addcookie(c); c=new cookie("my2","hi2"); c.setmaxage(-1); rp.addcookie(c); } } 该步调中,运用cookie c=new cookie("my1","hi1");创造了一个cookie,它本质上是两个配对的字符串。第一个字符串代办cookie的名字,第二个字符串代办cookie的值。而后运用rp.addcookie(c);将其写入用户的计划机中。cookie my1存在功夫为100*60秒即100秒钟,而my2则在封闭欣赏器时机动消逝。 在前方的dos窗口中输出吩咐: set path=c:jdk1.3bin;c:windows;c:windowscommand set classpath=c:jdk1.3bin;d:appjswdk-1.0.1libservlet.jar 以树立好情况变量。 javac xx.java编写翻译java步调 copy *.class d:appjswdk-1.0.1examplesweb-infservlets 将编写翻译后的步调正片到java servlet运转目次。 * 若运用老本子的jdk1.2,为了运转该java servlet步调,还须要窜改一个文献: d:appjswdk-1.0.1examplesweb-infservlets.properties 用文本编纂器翻开该文献,在其结果加上几行: xx.code=xx xx.initparams=foo 在欣赏器中输出http://呆板的ip地方:8080/examples/servlet/xx 便不妨向用户的计划机写入cookie了。 经过httpservletrequest类的getcookies( )本领不妨从相映用户读取cookie列表,放在cookie典型的数组中。经过数组中各个cookie的getname()和getvalue()本领不妨获得各个cookie的称呼和值。 底下的例子不妨打字与印刷出由servlet地方效劳器写入用户呆板上的cookie称呼和值的列表。若有称呼为my1的cookie,则将其值加上一个字符x。它一致一个计数器,不妨大略地统计在cookie存在功夫该用户的考察词典。 import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class yy extends httpservlet { cookie x[]; public void service(httpservletrequest rq, httpservletresponse rp) throws servletexception,ioexception { int have=0; cookie c;