我直接写如下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>
它们没有什么本质的区别呀
<%@ 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>
它们没有什么本质的区别呀
看你的第二个程序,好像在前面的页面中对对这个bean进行赋值,并设定scope=application。这里好像有问题?不知道是不是这个意思?
pw.println("<td>"+user+"</td>");
其它的类似
问题不在显示语句上,我试过了,还是不行.
我也同意 mzhenjun(mzhenjun) 的看法不过,我不知道在servelet的生成的打印页面中,如何像在jsp页面中加如如下的语句<jsp:useBean id="monitor" scope="application" class="java.util.HashMap" />.指定monitor对象属性,我在servelet中加过,要报错
所以我只能用new 一个对象的方法使用monitor,不知哪位大虾可以指点迷津.
你说的是对的,刚才是我的失误,问题解决,散分!!!