📄 srv_jchat.java
字号:
User p_user = channel.getUser(Integer.parseInt(str_recipient_id)); postPrivateMessage(channel, new PrivateMessage(user, str_message, p_user)); }else{ postMessage(channel, new Message(user, str_message)); } } }catch(Exception e){ e.printStackTrace(); errorPage(out, "Srv_JChat.doPost() -> error getting channel::posting message"); return; } try{ showHeader(out, user); showMessages(out, user); showPrivateMessages(out, user); showFooter(out, user); }catch(Exception e){ e.printStackTrace(); errorPage(out, "Srv_JChat.doPost() -> " + e.getMessage()); return; } }//doPost() public String replaceHtml(String str_message){ if (str_message.indexOf("<") > 0) { str_message = str_message.replace('<', '#'); } if (str_message.indexOf(">") > 0) { str_message = str_message.replace('>', '#'); } return str_message; } public void showHeader(ServletOutputStream out, User user)throws Exception{ try{ out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">"); out.println("<HTML>"); out.println("<HEAD>"); out.println("<TITLE>JChat: " + user.getChannelName() + "</TITLE>"); out.println("<script language=Javascript>"); out.println(" function setFocus(){"); out.println(" document.jchat.str_message.focus();"); out.println(" return true;"); out.println(" }"); out.println("</script>"); out.println("</HEAD>"); out.println("<BODY bgcolor=white onload=\"return setFocus()\"><center>"); out.println("<form name=\"jchat\" method=post action=\"Srv_JChat\">"); out.println("<input type=hidden name=\"str_user_name\" value=\"" + user.getName() + "\">"); out.println("<input type=hidden name=\"str_channel\" value=\"" + user.getChannelName() + "\">"); out.println("<nobr><img src=\"http://www.ansurgen.org/board/ttimoteo/images/jchat_top.gif\" border=0><img src=\"http://www.ansurgen.org/board/ttimoteo/images/alpha.gif\" border=0></nobr>"); out.println("<font face=\"tahoma,verdana,arial\" size=-1><br>"); out.println("Be Sure To Logout When You Are Finished!"); }catch(Exception e){ throw new Exception(e.getMessage()); } } public void showFooter(ServletOutputStream out, User aUser) throws Exception{ try{ Channel channel = getChannel(aUser.getChannelName()); Vector users = channel.getUsers(); out.println("<P><table border=1 cellpadding=3 cellspacing=0 width=550>"); out.println("<tr bgcolor=brown>"); out.println("<th colspan=2><font color=white face=\"tahoma,verdana,arial\" size=-1>"); out.println("Control Panel: "+aUser.getName()+"@JChat."+channel.getName()+"</th>"); out.println("</tr>"); out.println("<tr bgcolor=silver>"); out.println("<th width=450><font face=\"tahoma,verdana,arial\" size=-1>"); out.println("Message</th>"); out.println("<th width=100><font face=\"tahoma,verdana,arial\" size=-1>"); out.println("Send To</th>"); out.println("</tr>"); out.println("<tr>"); out.println("<td nowrap>"); out.println("<nobr><input type=text name=str_message size=45 maxlength=255> <input type=submit name=btn_post value=\"Send\">"); out.println("</td>"); out.println("<td align=center>"); showUsers(out, users); out.println("</td>"); out.println("</tr>"); out.println("</table><P>"); out.println("<input type=submit name=\"btn_logout\" value=\" Logout \">"); out.println("<br><font face=\"tahoma,verdana,arial\" size=-2>"); out.println("</center>"); out.println(getSettings()); }catch(Exception e){ throw new Exception(e.getMessage()); } } public void showUsers(ServletOutputStream out, Vector users){ try{ out.println("<select name=str_recipient_id>"); Enumeration enum = users.elements(); out.println("<option selected>ALL USERS"); while (enum.hasMoreElements()) { User user = (User)enum.nextElement(); out.println("<option value=\"" + user.getId() + "\">" + user.getName()); } out.println("</select>"); }catch(Exception e){ e.printStackTrace(); } }//showUsers() public Channel getChannel(String channel_name)throws Exception{ Channel channel = (Channel)channels_hash.get(channel_name); if (channel == null) { throw new Exception("The following channel does not exist: " + channel_name); } return channel; }//getChannel() public synchronized void showMessages(ServletOutputStream out, User user)throws Exception{ try{ out.println("<br><table border=1 cellpadding=3 cellspacing=0 width=550>"); out.println("<tr bgcolor=brown>"); out.println("<th colspan=2><font color=white face=\"tahoma,verdana,arial\" size=-1>" + "Channel: " + user.getChannelName() + "</th>"); out.println("</tr>"); out.println("<tr bgcolor=silver>"); out.println("<th width=100><font face=\"tahoma,verdana,arial\" size=-1>" + "User</th>"); out.println("<th width=450><font face=\"tahoma,verdana,arial\" size=-1>" + "Message</th>"); out.println("</tr>"); Channel channel = getChannel(user.getChannelName()); Vector messages = channel.getMessages(); Enumeration enum = messages.elements(); int i = 0; while (enum.hasMoreElements()) { Message msg = (Message)enum.nextElement(); if ((i % 2) == 0) {//even number out.println("<tr bgcolor=ffffca>"); }else{ out.println("<tr>"); } out.println("<td align=right><font face=\"tahoma,verdana,arial\" size=-1>"); if (msg.getSenderEmail() != null) { out.println("<a href=\"mailto:" + msg.getSenderEmail() + "\">"); } out.println(msg.getSenderName() + "</a></td>" + "<td align=left>" + "<font face=\"tahoma,verdana,arial\" size=-1>" + msg.getContent() + "</td>"); out.println("</tr>"); i++; } out.println("</table>"); }catch(Exception e){ throw new Exception(e.getMessage()); } }//showMessages() public synchronized void showPrivateMessages(ServletOutputStream out, User aUser)throws Exception{ Channel channel = null; Vector p_messages = null; try{ channel = getChannel(aUser.getChannelName()); p_messages = channel.getPrivateMessages(aUser); }catch(Exception e){ throw new Exception("showPrivateMessages() -> get channel|p_messages"); } if (p_messages == null || p_messages.size() == 0) { return; } try{ out.println("<P><table border=1 cellpadding=3 cellspacing=0 width=550>"); out.println("<tr bgcolor=brown>"); out.println("<th colspan=2><font color=white face=\"tahoma,verdana,arial\" size=-1>" + "Private Messages</th>"); out.println("</tr>"); out.println("<tr bgcolor=silver>"); out.println("<th width=100><font face=\"tahoma,verdana,arial\" size=-1>" + "User</th>"); out.println("<th width=450><font face=\"tahoma,verdana,arial\" size=-1>" + "Message</th>"); out.println("</tr>"); int i = 0; Enumeration enum = p_messages.elements(); while (enum.hasMoreElements()) { PrivateMessage msg = (PrivateMessage)enum.nextElement(); out.println("<tr>"); out.println("<td align=right><font face=\"tahoma,verdana,arial\" size=-2>"); if (msg.getSenderEmail() != null) { out.println("<a href=\"mailto:" + msg.getSenderEmail() + "\">"); } out.println(msg.getSenderName() + "</a> -> "); if (msg.getRecipientEmail() != null) { out.println("<a href=\"mailto:" + msg.getRecipientEmail() + "\">"); } out.println(msg.getRecipientName() + "</a></td>" + "<td align=left>" + "<font face=\"tahoma,verdana,arial\" size=-2>" + msg.getContent() + "</td>"); out.println("</tr>"); } out.println("</table>"); }catch(Exception e){ throw new Exception("Srv_JChat.showPrivateMessages() -> " + e.getMessage()); } }//showPrivateMessages() public synchronized void login(User user)throws Exception{ Channel channel = null; try{ channel = getChannel(user.getChannelName()); channel.addUser(user); }catch(Exception e){ throw new Exception(e.getMessage()); } postMessage(channel, new Message(user, DEFAULT_LOGIN_MESSAGE)); } public synchronized void logout(User user)throws Exception{ Channel channel = null; try{ channel = getChannel(user.getChannelName()); channel.removeUser(user); }catch(Exception e){ throw new Exception(e.getMessage()); } postMessage(channel, new Message(user, DEFAULT_LOGOUT_MESSAGE)); } public synchronized void postMessage(Channel aChannel, Message aMessage){ aChannel.addMessage(aMessage); } public synchronized void postPrivateMessage(Channel aChannel, PrivateMessage aMessage){ aChannel.addPrivateMessage(aMessage); } public void errorPage(ServletOutputStream out, String message){ try{ out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">"); out.println("<HTML>"); out.println("<HEAD>"); out.println("<TITLE>Error</TITLE>"); out.println("</HEAD><BODY bgcolor=white><font face=\"tahoma,verdana,arial\" size=-1><blockquote>"); out.println("<h2>JChat Error</h2>"); out.println("The following error occurred while processing your request:<br>"); out.println("<b>Exception:</b> " + message); out.println("<P>Try <a href=\""+DEFAULT_URL+"\">Logging In Again</a>."); }catch(Exception e){ e.printStackTrace(); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -