基于javaweb+mysql的聊天室

该博客介绍基于JavaWeb和MySQL的聊天室。运行环境要求Java≥8、MySQL≥5.7、Tomcat≥8,开发工具可选eclipse等。适用于课程设计等。具备登录、注册等功能,技术框架包含CSS、JavaScript等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于javaweb+mysql的聊天室

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

登录、注册、退出、聊天

技术框架

CSS+JavaScript+ajax+jsp Servlet jdbc MySQL


适用

课程设计,大作业,毕业设计,项目练习,学习演示等

		// 获取电子邮箱
		String email = request.getParameter("email");
		// 实例化UserDao对象
		UserDao userDao = new UserDao();
		if(username != null && !username.isEmpty()){
			if(userDao.userIsExist(username)){
				// 实例化一个User对象
				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", "错误:此用户名已存在!");
			}
		}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectDB {
    public static Connection getConnection() {
        Connection conn = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/project_000000000000?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&autoReconnect=true&failOverReadOnly=false";
            conn = DriverManager.getConnection(url, "root", "123456");
        } catch (Exception e) {
            e.printStackTrace();
        }

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectDB {
    public static Connection getConnection() {
        Connection conn = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/project_000000000000?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&autoReconnect=true&failOverReadOnly=false";
            conn = DriverManager.getConnection(url, "root", "123456");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }

    public static void main(String[] args) {
                    <option value="images/girl.png">头像girl</option>
                </select>
                <img id="photoImg" src="images/boy.png">
            </td>
        </tr>
        <tr>
            <td align="right">联系电话:</td>
            <td>
                <input type="text" name="tel">
            </td>
        </tr>
        <tr>
            <td align="right">电子邮箱:</td>
            <td>
                <input type="text" name="email">
            </td>
        </tr>
        <tr>
</BODY>
</HTML>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css">
    <title>聊天室登录</title>
    <style type="text/css">
        .myformdiv {
            background-color: #e3e4ea;
            opacity: 0.85;
        }
       .col-center-block {
            position: absolute;
            top: 50%;
            -webkit-transform: translateY(-50%);
            -moz-transform: translateY(-50%);
            -ms-transform: translateY(-50%);
            -o-transform: translateY(-50%);
            transform: translateY(-50%);
        }

    public static void closeConnection(Connection conn) {
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.demo.filter;

import java.io.IOException;
import javax.servlet.*;


        if (user != null) {
            // 将用户对象放入session中
            request.getSession().setAttribute("user", user);
            // 转发到result.jsp页面
            request.getRequestDispatcher("Messages?action=loginRoom").forward(request, response);
        } else {
            // 登录失败
            request.setAttribute("info", "错误:用户名或密码错误!");
            request.getRequestDispatcher("index.jsp").forward(request, response);
        }
    }
}
package com.demo.entity;

/**
 * 用户实体类
 */
public class User {
	private int id;			// 标识
	private String username;// 用户名
	private String password;// 密码

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.demo.entity.User;
/**
 * 用户数据库操作类
 */
public class UserDao {
	/**
	 * 添加用户
	 * @param user 用户对象
	 */
            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.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
			}
			// 释放此 ResultSet 对象的数据库和 JDBC 资源
			rs.close();
			// 释放此 PreparedStatement 对象的数据库和 JDBC 资源
			ps.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			// 关闭数据库连接
			ConnectDB.closeConnection(conn);
		}
		return false; 
	}
}
package com.demo.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
				user.setSex(rs.getString("sex"));
				user.setTel(rs.getString("tel"));
				user.setPhoto(rs.getString("photo"));
				user.setEmail(rs.getString("email"));
			}
			// 释放此 ResultSet 对象的数据库和 JDBC 资源
			rs.close();
			// 释放此 PreparedStatement 对象的数据库和 JDBC 资源
			ps.close();
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			// 关闭数据库连接
			ConnectDB.closeConnection(conn);
		}
		return user;
	}
	/**
	 * 判断用户名在数据库中是否存在
	 * @param username 用户名
	 * @return 布尔值
		// 获取电子邮箱
		String email = request.getParameter("email");
		// 实例化UserDao对象
		UserDao userDao = new UserDao();
		if(username != null && !username.isEmpty()){
			if(userDao.userIsExist(username)){
				// 实例化一个User对象
				User user = new User();		
				// 对用户对象中的属性赋值
				user.setUsername(username);	
				user.setPassword(password);
				user.setSex(sex);
				user.setPhoto(photo);
				user.setTel(tel);
				user.setEmail(email);
				// 保存用户注册信息
			ps.setString(2, user.getPassword());
			ps.setString(3, user.getSex());
			ps.setString(4, user.getTel());
			ps.setString(5, user.getPhoto());
			ps.setString(6, user.getEmail());
			// 执行更新操作
			ps.executeUpdate();
			// 释放此 PreparedStatement 对象的数据库和 JDBC 资源
			ps.close();
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			// 关闭数据库连接
			ConnectDB.closeConnection(conn);
		}
	}
	/**
	 * 用户登录
	 * @param username 用户名
	 * @param password 密码
	 * @return 用户对象
                <br>
                <div style="margin-top: 2px;">
                    <button type="submit" class="btn btn-primary">登录</button>
                    <button type="reset" class="btn btn-danger">重置</button>
                    <a href="reg.jsp" class="btn btn-info">注册</a>
                </div>
            </form>
        </div>
    </div>
</div>
</body>
</html>
<%@page contentType="text/html" pageEncoding="UTF-8" %>
<%@ page import="java.util.*"%>
<%@ page import="com.demo.model.UserInfo"%>
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
	public String getPhoto() {
		return photo;
	}
	public void setPhoto(String photo) {
		this.photo = photo;
	}
	public String getEmail() {
		return email;
                <br>
                <div class="input-group-lg">
                    <span class="input-group-addon "><b>密码</b></span>
                    <input type="password" class="form-control" placeholder="password" name="password" id="password">
                </div>
                <br>
                <br>
                <div style="margin-top: 2px;">
                    <button type="submit" class="btn btn-primary">登录</button>
                    <button type="reset" class="btn btn-danger">重置</button>
                    <a href="reg.jsp" class="btn btn-info">注册</a>
                </div>
            </form>
        </div>
    </div>

	// 增加用户
	public boolean addUser(String user) {
		if (user != null) {
			this.vector.add(user);
			return true;
		} else {
			return false;
		}
	}

	// 获取用户列表
	public Vector getList() {
		return vector;
	}

	// 移除用户
	public void removeUser(String user) {


请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值