我直接写如下jsp页面就能正常显示<%@ page contentType="text/html; charset=gb2312" %>
<%@ page language="java" import="java.util.*"%>
<%@ page import="javax.servlet.http.*" %>
<%@ page import="java.text.*" %>
<% String MyUrl="/system/sys_manage/OnlineMonitor.jsp"; %>
 
<jsp:useBean id="monitor" scope="application" class="java.util.HashMap" /><html>
  <head>
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
    <META HTTP-EQUIV="Expires" CONTENT="0">
    <META HTTP-EQUIV="refresh" CONTENT="1" ; URL=<%=MyUrl%>>
    <LINK href="<%=session.getAttribute("LoginUserStyleCss")%>" rel=stylesheet type=text/css>
  </head>
<body>  <table width="100%" border="1" bgcolor="#9999CC">
    <tr>
      <td><div align="center"><font size="4">在线用户</font></div></td>
    </tr>
  </table><br>
  <table bgColor=#ffffff border=1 bordercolordark=#CED9FF cellPadding=0 cellSpacing=0 width="100%" bordercolor="#CED9FF" bordercolorlight="#FFFFFF">
    <tr>
      <td width="15%"><b>用户名</b></td>
      <td width="15%"><b>IP地址</b></td>
      <td width="25%"><b>登陆时间</b></td>
      <td width="25%"><b>最后活动时间</b></td>
      <td width="20%"><b>距超时时间(秒)</b></td>
    </tr>
    <%
       String user="";
       String ipaddr="";
       String logtime="";
       String lasttime="";
       String over="";
       HttpSession se=null;
       DateFormat df = DateFormat.getDateTimeInstance(DateFormat.DEFAULT,DateFormat.DEFAULT);
       Date curr=new Date();
       Iterator mi=monitor.keySet().iterator();
       while(mi.hasNext()) {
         user=(String)mi.next();
         se=(HttpSession)monitor.get(user);
         ipaddr=(String)se.getAttribute("LoginUserIpAddr");
         logtime=df.format(new Date(se.getCreationTime()));
         lasttime=df.format(new Date(se.getLastAccessedTime()));
         over=""+(se.getMaxInactiveInterval()*1000 + se.getLastAccessedTime()- curr.getTime())/1000 ;
    %>
      <tr>
        <td><%=user%></td>
        <td><%=ipaddr%></td>
        <td><%=logtime%></td>
        <td><%=lasttime%></td>
        <td><%=over%></td>
      </tr>
    <%}%>
  </table>
</body>
</html>
它们没有什么本质的区别呀

解决方案 »

  1.   

    你向session中放入一个其他的值,你看看有吗
      

  2.   

    在一例中,monitorz是存放在application变量中,它是以名值对的方式存放的,对真个应用环境可用。而在二中是monitor一个bean,应用范围是这个servlet容器(即scope=application)。
    看你的第二个程序,好像在前面的页面中对对这个bean进行赋值,并设定scope=application。这里好像有问题?不知道是不是这个意思?
      

  3.   

    pw.println("<td><%=user%></td>");改成
    pw.println("<td>"+user+"</td>");
    其它的类似  
      

  4.   

    To:ajiao(明年今日) 
    问题不在显示语句上,我试过了,还是不行.
    我也同意 mzhenjun(mzhenjun) 的看法不过,我不知道在servelet的生成的打印页面中,如何像在jsp页面中加如如下的语句<jsp:useBean id="monitor" scope="application" class="java.util.HashMap" />.指定monitor对象属性,我在servelet中加过,要报错
    所以我只能用new 一个对象的方法使用monitor,不知哪位大虾可以指点迷津.
      

  5.   

    谢谢ajiao(明年今日) 
    你说的是对的,刚才是我的失误,问题解决,散分!!!