Linux中国  设为主页
 收藏本站
 
当前位置: > 首页 ->Linux技术 ->系统管理 ->JSP专题:第六部分:用JSP实现聊天室-2
·Fedora Core5 NFS服务器搭建过程介绍 ·Linux系统:让内存不再泄漏的实用技巧 ·新手看招 手把手教你安装VMware虚拟机 ·“侵权事件” 红帽称微软企图干扰用户 ·删除Linux后 如何找回Windows启动菜单 ·菜鸟乐园 Linux中常见文件系统格式介绍 ·Linux操作系统下IPTables配置方法详解 ·实用技巧 Linux系统的经典使用技巧八则 ·Linux系统文件优化及磁盘检查方法介绍
  相关分类: 
入门与提高
系统管理
网络应用
嵌入式系统
内核研究
服务器相关
发行版专区
Linux程序设计
Linux安全
BSD相关
桌面应用
  站内搜索: 
热门文章排行
热门文章排行 Adaptec 2100S RAID卡安装快速指南 (05-05)
JSP专题:第六部分:用JSP实现聊天室(05-05)
Linux 99问(一)(05-05)
Linux系统中网络配置详解(05-05)
JSP专题:第六部分:用JSP实现聊天室(05-05)
精采文章排行
精采文章排行 Motorola微处理器bootloader分析与应(06-04)
Linux系统:让内存不再泄漏的实用技(06-04)
Fedora Core5 NFS服务器搭建过程介绍(06-04)
新手看招 手把手教你安装VMware虚拟(06-04)
“侵权事件” 红帽称微软企图干扰用(06-04)
 

JSP专题:第六部分:用JSP实现聊天室-2

作者:Webmaster   来源:Linux-cn.com   点击:   日期:2007-05-05 [收藏] [投稿]

  IE是否经常中毒?推荐您

  在这个类中,我们使用了数组来保存各个聊天室的信息,在我们的程序中包含了两个相对独立的聊天室,而事实上采用这样的数据结构,你可以建立更多的聊天。在下面的程序中,我们将看到,我们使用了JavaBean在JSP中引用该类,而对于JSP中的JavaBean来说,其ID对应了一个实例的名称,ID是不能使用变量的,所以在这里选用这样的一个类来包容所有聊天室的信息还是一个不错的选择(如果你还不知道什么是JavaBean,你可以暂时不必理会这段话)。

  此外,在我们的returnAllSpeaking()方法中,包含了对超时用户的处理,而在这个方法中我们看到用户在调用该方法时,其用户时间将被置为当前时间,而下面我们将看到,用户对聊天室的每次刷新(包括自动刷新)都会调用该方法。所以,我们这里的所谓超时,也就意味着,用户关闭了聊天窗口,或用户失去连接一段时间。

4.3用户选择进入相应聊天室的页面


chatroom.jsp
<%@ page contentType="text/html;charset=gb2312" %>
<!--JSP的page指令-->
<HTML>
   <HEAD>
      <TITLE>
         聊天室--在线交流
      </TITLE>
   </HEAD>
   <BODY>
      <P ALIGN=CENTER><FONT SIZE='5' COLOR='#0000FF'>
      聊天室</FONT></P>
      <P ALIGN=LEFT><FONT SIZE='2' COLOR='#0000FF'>
      <A href="/examples/jsp/index.jsp">首页</A>>
      <A href="/examples/jsp/chatroom.jsp">在线交流</A></FONT>
      <DIV ALIGN="CENTER">
<jsp:useBean id="thisUser" scope="session" class="customers.oneUser" />
<!--引入session域的JavaBean以说明当前用户信息-->
<jsp:useBean id="thischatroom" scope="application" class="customers.ChatRoom" />
<!--引入application域的JavaBean以说明聊天室的信息-->
<%
  if (thisUser.getUserName() != null)
    {
%>
<!--JSP的脚本程序段,判断用户是否已登录-->
      <P><FONT SIZE='3' COLOR='#0000FF'>用户
      <%=thisUser.getUserName()%>,请选择您想要进入的聊天室
      <!--以上包含一个JSP的表达式以显示当前用户名-->
</FONT></P>
      <TABLE WIDTH="300" BORDER="1" CELLSPACING="2" CELLPADDING="5">
         <TR ALIGN="LEFT" VALIGN="MIDDLE">
            <TD HEIGHT="40" WIDTH="300">
               <DIV ALIGN="CENTER"> <FONT SIZE='3'
	       COLOR='#0000FF'><A HREF="/examples/jsp/chat.jsp?
	       chatroom=1">聊天室A[<%=thischatroom.returnUserCount(1)%>]
	       </A></FONT></DIV> 
<!--以上包含一个JSP的表达式以显示聊天室A的在线人数-->
            </TD>
         </TR>
         <TR ALIGN="LEFT" VALIGN="MIDDLE">
            <TD HEIGHT="40" WIDTH="300">
               <DIV ALIGN="CENTER"> <FONT SIZE='3' COLOR='#0000FF'>
	       <A HREF="/examples/jsp/chat.jsp?chatroom=2">聊天室B
	       [<%=thischatroom.returnUserCount(2)%>]
	       </A></FONT></DIV> 
<!--以上包含一个JSP的表达式以显示聊天室B的在线人数-->
            </TD>
         </TR>
      </TABLE>
<%
    }
    else out.print("尚未登录,请先进入<A href='/examples/jsp/login.jsp'>
    用户登录</A>");
%>
<!--JSP的脚本程序段,以处理用户未登录的情况-->
   </BODY>
</HTML>

  事实上,这是我们接触到的第一个真正意义上的JSP文件,在此之前的login.jsp实在是太简单了。

  这个JSP文件初看上去具有JSP特色的东西仍然不是太多,但是它实际上基本涵盖了JSP的基本语法元素。

  “<%@ page contentType="text/html;charset=gb2312" %>” ,这是一个JSP的page指令。其中的“contentType="text/html;charset=gb2312"”定义了本页的contentType属性。利用page指令你还可以说明更多的有关本页的属性。page指令对每一个属性只能说明一次,可以放在JSP文件的任何地方,其作用范围都是整个JSP页面。不过我们一般将它放在JSP文件的顶端。

  “<jsp:useBean id="thisUser" scope="session" class="customers.oneUser" />”、“<jsp:useBean id="thischatroom" scope="application" class="customers.ChatRoom" />”两句是JSP的useBean指令。

  useBean指令用于定位或示例一个JavaBean组件,对于JavaBean组件,你可以简单地理解为Java类,象我们这里的两个useBean指令就分别对应于我们前面定义的oneUser类及ChatRoom类。useBean指令存在较为复杂的语法的选择,我们这里使用的是一种基本的格式。

  id是在所定义的范围中确认JavaBean的变量,Java引擎通过id值识别该JavaBean是否存在,如果存在,就直接引入已存在的JavaBean;反之就会从一个class或模板中进行示例。新建的JavaBean,可以在以后的程序中通过id值来调用。正如我们前面提到的,id值只能是一个字符串型的常量,而不能是变量。

  scope是JavaBean存在的范围以及id变量名的有效范围。简单地说,session将存在于某一用户与服务器的会话中,对于该用户,除非他关闭浏览器、与服务器失去连接或服务器指定该session无效,他可以一直使用session中绑定的对象;application和session存在着某种相似的情况,它差不多是一个公用的session,虽然在原理上两者存在较大差异,但是在具体表现上的确是这样的。也就是说application中绑定的对象对于每一个用户都将是共享的,每一个用户对其进行的操作也将会影响其他用户。

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<

上一页 1 23 4 5 6 下一页

上一篇:JSP专题:第六部分:用JSP实现聊天室-1   下一篇:不同Web主机上的Servlet之间数据对象的相互传输
文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论

   相关文章:
·Motorola微处理器bootloader分析与应用

   文章评论:(1条)
  
 请留名: 匿名评论   点击查看所有评论 论坛讨论
 

 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。