Java Servlet及Cookie的使用

cookie|servlet

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

时间: 2024-10-28 11:47:28

Java Servlet及Cookie的使用的相关文章

Java Servlet及Cookie的使用_JSP编程

    本文介绍了Java Servlet编程所需的软件及环境配置.只要你有一台安装Windows 95/98了的PC机,便可以按照本文的步骤开发Servlet程序了.本文同时给出了通过Java Servlet向用户的硬盘写入和读取Cookie的方法及例程.通过它可以实现网上常见的个性化网页.网上购物篮.密码验证等. Java Servlet是运行于Web服务器上的Java代码,它可以接受用户请求,进行相应的处理,并向用户提供反馈.其作用类似于CGI程序,可以实现网页中很多交互式效果,但比CGI

J2EE中Servlet操作cookie

一.基本概念cookie是web服务器通过浏览器保存在www用户端硬盘上的一个文本文件,这个文件中包含了文本信息文本信息的内容是以"名/值"对的形式进行储存.可以让web开发者通过程序读写这个文本文件在Windows XP中保存Cookie的目录是:C:\Documents and Settings\用户名\Cookies. Cookie的作用是解决浏览器用户与web服务器之间无状态通信. 二.注意点 cookie的大小和数量是有限制的. cookie在个人硬盘上所保存的文本信息是以明

Java Servlet 编程及应用(一)

一.概述 Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面. Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机. Java Servlet 与 Applet 的比较: 相似之处: * 它们不是独立的应用程序,没有main()方法. * 它们不是由用户或程序员调用,而是由另外一个应用程序(容器)调用.

Java Servlet 和 JSP教程(1)

js|servlet|教程 1 概述 1.1 Java Servlet及其特点 Servlet是Java技术对CGI编程的回答.Servlet程序在服务器端运行,动态地生成Web页面.与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资(更重要的是, Servlet程序员收入要比Perl程序员高:-): 高效 在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开

关于Java Servlet编程应用基础分析

servlet|编程 一.概述 Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面. Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机. Java Servlet 与 Applet 的比较: 相似之处: * 它们不是独立的应用程序,没有main()方法. * 它们不是由用户或程序员调用,而是由另外一个

Java Servlet API说明文档(2.1a版)

servlet 术语表bytecode字节码:由Java编译器和Java解释程序生成的机器代码. cookie由Web服务器建立的数据,该数据存储在用户的计算机上,提供了一个Web站点跟踪用户的参数并存储在用户自己硬盘上的方法. HTTP超文本传输协议.一个请求响应协议用来连接WWW服务器向客户端浏览器传输HTML页面. 输入流对象一个对象,由ServletInputStream类定义,被Servlet用来从客户端读取请求. 映射由Servlet实例和Servlet返回数据的URL组成的一对,例

JSP和Java Servlet的技术概述以及比较

js|servlet|比较 Java Servlet及其特点 Servlet是Java技术对CGI编程的回答.Servlet程序在服务器端运行,动态地生成Web页面.与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资(更重要的是, Servlet程序员收入要比Perl程序员高:-): 高效: 在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过

Java Servlet API说明文档(2.1a版)(一)

servlet 绪言 这是一份关于2.1版Java Servlet API的说明文档,作为对这本文档的补充,你可以到http://java.sun.com/products/servlet/index.html下面下载Javadoc格式的文档. 谁需要读这份文档 这份文档描述了Java Servlet API的最新版本2.1版.所以,这本书对于Servlet的开发者及servlet引擎的开发者同样适用. Java Servlet API的组成 Java Servlet API由两个软件包组成:一

Java Servlet API说明文档(2.1a版)(二)

servlet API对象的说明\r 这一部分包含了对Java Servlet API的全部类和接口的详细说明.这个说明与Javadoc API差不多,但是这份文档提供了更多的信息.API包含了两个软件包,十二个接口和九个类.软件包:javax.servlet 所包含的接口:RequestDispatcher:Servlet:ServletConfig:ServletContext:ServletRequest:ServletResponse:SingleThreadModel.所包含的类:Ge