⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 srv_jchat.java

📁 一个简单的Servlet聊天程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
               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> -&gt; ");            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 + -