📄 online.java
字号:
package com.yhbbs.comm.tag;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
import org.apache.log4j.Logger;
import com.yhbbs.user.biz.OnlineBizIm;
import com.yhbbs.user.itface.bean.UserSession;
import com.yhbbs.utils.DateUtils;
import com.yhbbs.utils.ReqUtils;
/**
* <p>Title: 论坛在线用户统计</p>
* <br><b>WebSite: www.yyhweb.com</b>
* <br><b>CopyRight: yyhweb[由由华网]</b>
* @author stephen
* @version YHBBS-2.0
*/
public class OnLine extends TagSupport{
private static final long serialVersionUID = 1L;
private static Logger bbslog = Logger.getLogger(OnLine.class.getName());
public int doStartTag() throws JspException {
return 0;
}
public int doEndTag() throws JspException {
try {
HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
int forumId = ReqUtils.getInt(request,"fId");
UserSession bbsuser = (UserSession) request.getSession(true).getAttribute("bbsuser");
int userType = 0;
if(bbsuser!=null){
userType = bbsuser.getUsertype();
}
List onlist = null;
StringBuffer sb = new StringBuffer();
sb.append("<table class=tab1 align=center cellSpacing=0 cellPadding=0 width=100% >");
sb.append("<tr height=25px><td class=tab_c colspan=2>");
sb.append("<b><font color=#FFFFFF> || 论坛在线统计 || ");
if(forumId==0){
int maxonline = ReqUtils.getIntAtt(request,"maxonline");
String maxtime = ReqUtils.getStrAtt(request,"maxtime");
sb.append("[ 同时在线峰值:");
sb.append(maxonline);
sb.append(" 人,发生时刻:");
sb.append(DateUtils.getDate2MStr(DateUtils.getStr2MDate(maxtime)));
sb.append(" ] ");
}
sb.append("</font></b>");
sb.append("<a href=javascript:showmore()>[ <span id=flag>打开在线列表</span> ]</a>");
sb.append("</td></tr>");
sb.append("<tr><td width=30px class=td_tbg align=center>");
sb.append("<img src=webapp/images/allonline.gif border=0 /></td>");
sb.append("<td class=td_lt valign=top>");
sb.append("<table width=99% align=center cellSpacing=0 cellPadding=0 >");
sb.append("<tr><td>目前论坛总在线 ");
sb.append(OnlineBizIm.getOnlineCount());
sb.append(" 人。 ");
if(forumId==0){
onlist = OnlineBizIm.getOnlinelist();
sb.append("其中注册用户 ");
sb.append(OnlineBizIm.getOnlineUserC());
sb.append(" 人, 访客 ");
sb.append(OnlineBizIm.getOnlineGuestC());
sb.append(" 人。<br>");
sb.append("在线名单图例: <img src=webapp/images/tzhu.gif border=0 /> 论坛坛主 ");
sb.append(" <img src=webapp/images/zbzhu.gif border=0 /> 论坛总版主 ");
sb.append(" <img src=webapp/images/bzhu.gif border=0 /> 论坛版主 ");
sb.append(" <img src=webapp/images/rezh.gif border=0 /> 特殊会员 ");
sb.append(" <img src=webapp/images/common.gif border=0 /> 一般用户 ");
sb.append(" <img src=webapp/images/common.gif border=0 /> 待认证用户");
sb.append(" <img src=webapp/images/guest.gif border=0 /> 客人");
}else{
OnlineBizIm.setForumOnlist(forumId);
onlist = OnlineBizIm.getForumlist();
sb.append("本论坛总在线 ");
sb.append(OnlineBizIm.getForumCount());
sb.append(" 人。 ");
sb.append("其中注册用户 ");
sb.append(OnlineBizIm.getForumuc());
sb.append(" 人,访客 ");
sb.append(OnlineBizIm.getForumgc());
sb.append(" 人。<br>");
}
sb.append("</td></tr>");
sb.append("<tr><td height=5px> </td></tr>");
sb.append("<tr><td class=td_t height=22px id=online style=display:none> ");
sb.append(userlist(userType,onlist));
sb.append("</td></tr></table>");
sb.append("</td></tr>");
sb.append("</table>");
JspWriter out = pageContext.getOut();
out.println(sb);
sb = null;
}catch(Exception e){
bbslog.error("Online tag's doEndTag error!");
}
return 6;
}
/**
* @param userType 用户类型
* @param onlist 在线用户列表
* @return String
*/
public String userlist(int userType,List onlist){
StringBuffer sb2 = new StringBuffer();
UserSession onlineuser = null;
int i = 0;
if(onlist!=null){
if(onlist.size()<=100){
for(i=onlist.size()-1;i>=0;i--){
onlineuser = (UserSession) onlist.get(i);
sb2.append(userDisplay(onlineuser,userType));
}
}else {
for(i=onlist.size()-1;i>=onlist.size()-100;i--){
onlineuser = (UserSession) onlist.get(i);
sb2.append(userDisplay(onlineuser,userType));
}
sb2.append("<br> <a href=OnLine.htm><b>更多在线<b></a> ");
}
}
String str = sb2.toString();
sb2=null;
return str;
}
private String userDisplay(UserSession onlineuser,int userType){
StringBuffer sb2 = new StringBuffer();
String str = "";
switch (onlineuser.getUsertype()){
case 0: sb2.append("<img src=webapp/images/guest.gif border=0 alt=游客>"); break;
case 1: sb2.append("<img src=webapp/images/common.gif border=0 alt=待认证用户>"); break;
case 2: sb2.append("<img src=webapp/images/common.gif border=0 alt=一般用户>"); break;
case 3: sb2.append("<img src=webapp/images/rezh.gif border=0 alt=特殊用户>"); break;
case 4: sb2.append("<img src=webapp/images/bzhu.gif border=0 alt=论坛版主>"); break;
case 5: sb2.append("<img src=webapp/images/bzhu.gif border=0 alt=论坛区版主>"); break;
case 6: sb2.append("<img src=webapp/images/zbzhu.gif border=0 alt=论坛总版主>"); break;
case 7: sb2.append("<img src=webapp/images/tzhu.gif border=0 alt=管理员>"); break;
default:sb2.append("<img src=webapp/images/guest.gif border=0 alt=游客>");break;
}
if(onlineuser.getUserId()==0){
sb2.append("<a href=# ");
}else{
sb2.append("<a href=User.htm?uId=");
sb2.append(onlineuser.getUserId());
}
sb2.append(" title='目前位置:"+onlineuser.getPostion());
sb2.append("\n"+"来访时间:"+onlineuser.getLogintime());
sb2.append("\n"+"活动时间:"+onlineuser.getActivetime());
sb2.append("\n"+"操作系统:"+onlineuser.getOs());
sb2.append("\n"+"浏 览 器:"+onlineuser.getBrowser());
sb2.append("\n"+"IP 地址:");
if(userType<4)
sb2.append(" 设置保密");
else
sb2.append(onlineuser.getIp());
sb2.append("'>");
sb2.append(" "+onlineuser.getUsername());
sb2.append("</a> ");
str = sb2.toString();
sb2 = null;
return str;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -