📄 chatroomservlet.java
字号:
package com.saas.biz.commen;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.LinkedList;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/** *//**
* Servlet implementation class for Servlet: Chat
*
*/
public class ChatRoomServlet extends javax.servlet.http.HttpServlet implements
javax.servlet.Servlet {
static final long serialVersionUID = 1L;
private String userName = "";
/**//*
* (non-Java-doc)
*
* @see javax.servlet.http.HttpServlet#HttpServlet()
*/
public ChatRoomServlet() {
super();
}
private String getNow(){
Date date = new Date();
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
return df.format(date);
}
/**//*
* (non-Java-doc)
*
* @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request,
* HttpServletResponse response)
*/
@SuppressWarnings("unchecked")
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String action = request.getParameter("Action");
if (action == null) {
} else if (action.equals("GetMessage")) {
PrintWriter out = response.getWriter();
out.print(getMessages() + "!@#" + getOnlineUsers());
} else if (action.equals("AddMessage")) {
String message = request.getParameter("Message");
userName = ((UserSessionListener) request.getSession()
.getAttribute("UserName")).toString();
addMessage(getNow() + " " + userName + " Says: " + message);
}else if(action.equals("Logout")){
request.getSession().removeAttribute("UserName");
}else if(action.equals("Login")){
request.getSession().setAttribute("UserName", new UserSessionListener(request.getParameter("UserName")));
}
// TODO Auto-generated method stub
}
/**//*
* (non-Java-doc)
*
* @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request,
* HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
// TODO Auto-generated method stub
}
@SuppressWarnings("unchecked")
private String getMessages() {
String result = null;
ServletContext application = getServletContext();
LinkedList<String> messages = (LinkedList<String>) application
.getAttribute("ChatMessage");
if (messages == null) {
result = "";
} else {
StringBuilder sb = new StringBuilder("");
for (String tmp : messages) {
sb.append(tmp);
sb.append("<br>");
}
result = sb.toString();
}
return result;
}
@SuppressWarnings("unchecked")
private String getOnlineUsers() {
String result;
LinkedList<String> onlineUsers = (LinkedList<String>)getServletContext().getAttribute("UserList");
if (onlineUsers == null) {
result = "";
} else {
StringBuilder users = new StringBuilder("");
for (String tmp : onlineUsers) {
users.append(tmp);
users.append(" ");
}
result = users.toString();
}
return result;
}
@SuppressWarnings("unchecked")
private void addMessage(String message) {
ServletContext application = getServletContext();
synchronized (application) {
LinkedList<String> messages = (LinkedList<String>) application
.getAttribute("ChatMessage");
if (messages == null) {
messages = new LinkedList<String>();
}
if (messages.size() > 10) {
messages.removeFirst();
}
messages.add(message);
application.setAttribute("ChatMessage", messages);
}
}
public void destroy() {
super.destroy();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -