选择显示字体大小

java servlet及cookie的使用 

    本文介绍了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;  


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons