——————————DescriptionStart——————————
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
登录、注册、退出、聊天





技术框架
CSS+JavaScript+ajax+jsp Servlet jdbc MySQL
基于javaweb的JSP+Servlet聊天室(java+jsp+servlet+mysql)
——————————CodeStart——————————
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| } sourceMessage += "系统公告:<font color='gray'>" + username + "走进了聊天室!</font><br>"; application.setAttribute("message", sourceMessage); try { request.getRequestDispatcher("login_ok.jsp").forward(request, response); } catch (Exception ex) { Logger.getLogger(Messages.class.getName()).log(Level.SEVERE, null, ex); } } }
// 发送聊天信息 public void sendMessages(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); request.setCharacterEncoding("UTF-8"); Random random = new Random(); String from = request.getParameter("from"); //发言人 String face = request.getParameter("face"); //表情 String to = request.getParameter("to"); //接收者 String color = request.getParameter("color"); //字体颜色 String content = request.getParameter("content"); //发言内容 String sendTime = new Date().toLocaleString(); //发言时间 ServletContext application = getServletContext(); String sourceMessage = application.getAttribute("message").toString(); try { //发言时间 sourceMessage += "<font color='blue'><strong>" + from + "</strong></font><font color='#CC0000'>" + face + "</font>对<font color='green'>[" + to + "]</font>说:" + "<font color='" + color + "'>" + content + "</font>(" + sendTime + ")<br>"; application.setAttribute("message", sourceMessage); request.getRequestDispatcher("Messages?action=getMessages&nocache=" + random.nextInt(10000)).forward(request, response); } catch (Exception ex) { Logger.getLogger(Messages.class.getName()).log(Level.SEVERE, null, ex); } }
@Override public String getServletInfo() { return "Short description"; } } package com.demo.servlet;
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| application.setAttribute("message", sourceMessage); try { request.getRequestDispatcher("login_ok.jsp").forward(request, response); } catch (Exception ex) { Logger.getLogger(Messages.class.getName()).log(Level.SEVERE, null, ex); } } }
// 发送聊天信息 public void sendMessages(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); request.setCharacterEncoding("UTF-8"); Random random = new Random(); String from = request.getParameter("from"); //发言人 String face = request.getParameter("face"); //表情 String to = request.getParameter("to"); //接收者 String color = request.getParameter("color"); //字体颜色 String content = request.getParameter("content"); //发言内容 String sendTime = new Date().toLocaleString(); //发言时间 ServletContext application = getServletContext(); String sourceMessage = application.getAttribute("message").toString(); try { //发言时间 sourceMessage += "<font color='blue'><strong>" + from + "</strong></font><font color='#CC0000'>" + face + "</font>对<font color='green'>[" + to + "]</font>说:" + "<font color='" + color + "'>" + content + "</font>(" + sendTime + ")<br>"; application.setAttribute("message", sourceMessage); request.getRequestDispatcher("Messages?action=getMessages&nocache=" + random.nextInt(10000)).forward(request, response); } catch (Exception ex) { Logger.getLogger(Messages.class.getName()).log(Level.SEVERE, null, ex); } }
@Override public String getServletInfo() { return "Short description"; } } package com.demo.servlet;
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| Logger.getLogger(Messages.class.getName()).log(Level.SEVERE, null, ex); } }
// 登录时,写入系统公告 public void loginRoom(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); HttpSession session = request.getSession(); String username = request.getParameter("username"); //获得登录用户名 UserInfo user = UserInfo.getInstance(); //获得UserInfo类的对象 session.setMaxInactiveInterval(600); //设置Session的过期时间为10分钟 Vector vector = user.getList(); boolean flag = true; //标记是否登录的变量 //判断用户是否登录 System.out.println("vector的size:" + vector.size()); if (vector != null && vector.size() > 0) { for (int i = 0; i < vector.size(); i++) { System.out.println("vector" + i + ":" + vector.elementAt(i) + " user:" + username); if (username.equals(vector.elementAt(i))) { PrintWriter out; try { out = response.getWriter(); } catch (IOException e) { e.printStackTrace(); } flag = false; break; } } } //保存用户信息 if (flag) { UserListener ul = new UserListener(); //创建UserListener的对象 ul.setUser(username); //添加用户 user.addUser(ul.getUser()); //添加用户到UserInfo类的对象中 session.setAttribute("user", ul); //将UserListener对象绑定到Session中 session.setAttribute("username", username); //保存当前登录的用户名 session.setAttribute("loginTime", new Date().toLocaleString()); //保存登录时间 ServletContext application = getServletContext();
String sourceMessage = "";
if (null != application.getAttribute("message")) { sourceMessage = application.getAttribute("message").toString(); } sourceMessage += "系统公告:<font color='gray'>" + username + "走进了聊天室!</font><br>"; application.setAttribute("message", sourceMessage); try { request.getRequestDispatcher("login_ok.jsp").forward(request, response); } catch (Exception ex) {
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| if ("loginRoom".equals(action)) { this.loginRoom(request, response); } else if ("sendMessage".equals(action)) { this.sendMessages(request, response); } else if ("getMessages".equals(action)) { this.getMessages(request, response); } }
public void getMessages(HttpServletRequest request, HttpServletResponse response) { response.setContentType("text/html;charset=UTF-8"); try { request.getRequestDispatcher("content.jsp").forward(request, response); } catch (Exception ex) { Logger.getLogger(Messages.class.getName()).log(Level.SEVERE, null, ex); } }
public void loginRoom(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); HttpSession session = request.getSession(); String username = request.getParameter("username"); UserInfo user = UserInfo.getInstance(); session.setMaxInactiveInterval(600); Vector vector = user.getList(); boolean flag = true; System.out.println("vector的size:" + vector.size()); if (vector != null && vector.size() > 0) { for (int i = 0; i < vector.size(); i++) { System.out.println("vector" + i + ":" + vector.elementAt(i) + " user:" + username); if (username.equals(vector.elementAt(i))) { PrintWriter out; try { out = response.getWriter(); } catch (IOException e) { e.printStackTrace(); } flag = false; break; } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
public class RegServlet extends HttpServlet { private static final long serialVersionUID = 5280356329609002908L;
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); String sex = request.getParameter("sex"); String photo = request.getParameter("photo"); String tel = request.getParameter("tel"); String email = request.getParameter("email"); UserDao userDao = new UserDao(); if(username != null && !username.isEmpty()){ if(userDao.userIsExist(username)){ User user = new User(); user.setUsername(username); user.setPassword(password); user.setSex(sex); user.setPhoto(photo); user.setTel(tel); user.setEmail(email); userDao.saveUser(user); request.setAttribute("info", "恭喜,注册成功!<br>"); }else{ request.setAttribute("info", "错误:此用户名已存在!"); } } request.getRequestDispatcher("index.jsp").forward(request, response); } } package com.demo.servlet;
|
——————————PayStart——————————
项目链接:
https://javayms.github.io?id=022021341902102ac
https://javayms.pages.dev?id=022021341902102ac