您所在的位置: 首页>>读书频道>>设计开发>>Java系列>>

10.1.2 在不同用户之间共享数据

http://book.51cto.com  2007-04-24 16:54  刘晓华/张健/周慧贞  电子工业出版社  我要评论(0)
  • 摘要:本节将讨论JSP开发经常要使用的技术和技巧。通过学习本章,读者不仅可以掌握一些技巧,也可以巩固JSP、Servlet的基础语法知识。本章的主要内容有:①在不同页面或者用户之间共享数据;②创建错误处理页面;③国际化问题的解决;④在JSP中操作文件;⑤在JSP中上传文件。
  • 标签:数据  JSP  Java  JSP应用开发详解(第三版)

在不同页面之间共享数据的最常见方法是使用ServletContext和application对象,通过在一个用户那里设置一个属性,在另一个用户那里可以获得这个属性。

1.使用ServletContext

在JSP页面中可以通过getServletContext()方法获得ServletContext对象。

在这种情况下,不同用户的页面之间可以通过ServletContext共享数据,当然同一个用户的不同页面也可以通过ServletContext共享数据。

聊天室程序是非常常见的,下面我们使用ServletContext创建一个非常简单的聊天室,如例程10-8所示。

例程10-8  使用ServletContext对象创建一个简单的聊天室

<%@ page contentType="text/html; charset=gb2312"
language="java" import="java.sql.*,javax.servlet.*,javax.servlet.http.*,
com.jspdev.ch10.*" errorPage="" %>
<%
request.setCharacterEncoding("gb2312");
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>

一个简单的聊天室

<br><hr><font color=red>
<%
String content=(String)getServletContext().getAttribute(new
String("chatTopic_1"));
out.println(content);
getServletContext().setAttribute("chatTopic_1",content+(String)request.getParameter
("content")+"<br>");
%>
</font>
<hr>
<form action="Servlet Context_chat.jsp">
<input type=text name=content>
<input type=submit value="说话呀">
</form>
</body>
</html>

其实,正在聊天的代码只有黑体字所示的3行程序。这种程序的思路非常简单:当提交一些内容后,首先获得ServletContext中的chatTopic_1属性的值,这个属性的值就是当前聊天的内容,然后把这个值显示在客户端,最后连同当前用户说话的内容一起设置为ServletContext中的chatTopic_1属性。

在浏览器里输入:http://127.0.0.1:8080/ch10/Servlet Context_chat.jsp。在表单中填写一些信息后提交。然后另外打开一个浏览器,输入同样的URL,这样就可以通过这个简单的程序聊天了,如图10-1所示。

图10-1  一个非常简单的聊天室

2.使用application对象

application对象对于每个Web应用来说只有一个,它的使用和ServletContext差不多。下面我们简单地看一个应用。我们使用application对象把例程10-8所示的聊天程序重新写一遍,如例程10-9所示。

例程10-9  使用application对象编写的聊天程序(testApplication.jsp)

<%@ page contentType="text/html; charset=gb2312"
language="java" import="java.sql.*,javax.servlet.*,javax.servlet.http.*" errorPage="" %>
<%
request.setCharacterEncoding("gb2312");
%>

<br><hr><font color=red>
<%
String content=(String)application.getAttribute(new String("chatTopic_1"));
out.println(content);
application.setAttribute("chatTopic_1",content+(String)request.getParameter("content")+"<br>");
%>

可以看出,application的实现机制和ServletContext的实现机制基本上是一样的。

【责任编辑:火凤凰 TEL:(010)68476606-8007】

回书目   上一节   下一节
重复数据删除技术
Sun以10亿美元并购开源数据库厂商MySQL
Java实用开发全集
Oracle数据库开发之PL/SQL基础应用
Oracle数据库开发基础教程
 
 验证码: (点击刷新验证码)   匿名发表
  • Visual C++ 完全自学宝典

  • 作者:强锋科技,朱洪波
  • Visual C++ 6.0是微软公司为程序人员提供的Visual Studio 6.0工具套件中的重要组成部分。本书由浅入深地介绍使用Visual C++ 6.0..
Copyright©2005-2008 51CTO.COM 版权所有