基于javaweb+JSP+Servlet聊天室
开发工具:eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
function reg(form) {
if (form.username.value == "") {
alert("用户不能为空!");
return false;
}
if (form.password.value == "") {
alert("密码不能为空!");
return false;
}
if (form.repassword.value == "") {
alert("确认密码不能为空!");
return false;
}
<table width="778" height="149" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#a2d5d0"
background="images/laji.jpg">
<tr>
<td> </td>
</tr>
</table>
<table width="778" height="276" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="165" valign="top" bgcolor="#f6fded" id="online" style="padding:5px">在线人员列表</td>
<td width="613" height="200px" valign="top" background="images/main_bj.jpg" bgcolor="#FFFFFF"
style="padding:5px; ">
<div style="height:290px; overflow:hidden" id="content">聊天内容</div>
</td>
</tr>
</table>
<table width="778" height="95" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#a2d5d0"
background="images/back.jpg">
<form action="" name="form1" method="post">
<tr>
<td height="30" align="left"> </td>
<td height="37" align="left"><input name="from" type="hidden" value="${username}">[${username} ]对
<input name="to" type="text" value="" size="35" readonly="readonly">
表情
<select name="face" class="wenbenkuang">
<option value="无表情的">无表情的</option>
<option value="无表情的">无表情的</option>
<option value="微笑着" selected>微笑着</option>
<option value="笑呵呵地">笑呵呵地</option>
<option value="热情的">热情的</option>
<option value="温柔的">温柔的</option>
<option value="红着脸">红着脸</option>
<option value="幸福的">幸福的</option>
<option value="嘟着嘴">嘟着嘴</option>
<option value="热泪盈眶的">热泪盈眶的</option>
<option value="依依不舍的">依依不舍的</option>
<option value="得意的">得意的</option>
<option value="神秘兮兮的">神秘兮兮的</option>
<option value="恶狠狠的">恶狠狠的</option>
<option value="大声的">大声的</option>
ps.executeUpdate();
// 释放此 PreparedStatement 对象的数据库和 JDBC 资源
ps.close();
} catch (Exception e) {
e.printStackTrace();
}finally{
// 关闭数据库连接
ConnectDB.closeConnection(conn);
}
}
/**
* 用户登录
* @param username 用户名
* @param password 密码
* @return 用户对象
*/
public User login(String username, String password){
User user = null;
// 获取数据库连接Connection对象
Connection conn = ConnectDB.getConnection();
// 根据用户名及密码查询用户信息
String sql = "select * from tb_user where username = ? and password = ?";
try {
ps.close();
} catch (Exception e) {
e.printStackTrace();
}finally{
// 关闭数据库连接
ConnectDB.closeConnection(conn);
}
}
/**
* 用户登录
* @param username 用户名
* @param password 密码
* @return 用户对象
*/
public User login(String username, String password){
User user = null;
// 获取数据库连接Connection对象
Connection conn = ConnectDB.getConnection();
// 根据用户名及密码查询用户信息
String sql = "select * from tb_user where username = ? and password = ?";
try {
// 获取PreparedStatement对象
PreparedStatement ps = conn.prepareStatement(sql);
// 对SQL语句的占位符参数进行动态赋值
ps.setString(1, username);
ps.setString(2, password);
}
// 当Session有对象移除时执行的方法
public void valueUnbound(HttpSessionBindingEvent arg0) {
System.out.println("下线用户:" + this.user);
if (user != "") {
container.removeUser(user);
}
}
}
package com.demo.dao;
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();
ps.setString(1, user.getUsername());
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);
<!--
function send() { //验证聊天信息并发送
if (form1.to.value == "") {
alert("请选择聊天对象!");
return false;
}
if (form1.content1.value == "") {
alert("发送信息不可以为空!");
form1.content1.focus();
return false;
}
var param = "from=" + form1.from.value + "&face=" + form1.face.value + "&color=" + form1.color.value + "&to=" + form1.to.value + "&content=" + form1.content1.value;
var loader = new net.AjaxRequest("Messages?action=sendMessage", deal_send, onerror, "POST", param);
}
function deal_send() {
content.innerHTML = sysBBS + this.req.responseText + "</span>";
<input type="text" class="form-control" placeholder="username" name="username" id="username">
</div>
<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>
</div>
</body>
</html>
<%@page contentType="text/html" pageEncoding="UTF-8" %>
<%@ page import="java.util.*"%>
<%@ page import="com.demo.model.UserInfo"%>
<%@ page import="com.demo.servlet.UserListener"%>
<%@ include file="safe.jsp" %>
<html>
<head>
<title>聊天室</title>
<link href="CSS/style.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css">
<script language="javascript" src="JS/AjaxRequest.js"></script>
<script language="javascript">
window.setInterval("showContent();", 1000);
window.setInterval("showOnline();", 10000);
var sysBBS = "<span style='font-size:14px; line-height:30px;'>欢迎光临聊天室,请遵守聊天室规则,不要使用不文明用语。</span><br><span style='line-height:22px;'>";
//此处需要加?nocache="+new Date().getTime(),否则将出现在线人员列表不更新的情况
function showOnline() {
var loader = new net.AjaxRequest("online.jsp?nocache=" + new Date().getTime(), deal_online, onerror, "GET");
}
function showContent() {
var loader1 = new net.AjaxRequest("Messages?action=getMessages&nocache=" + new Date().getTime(), deal_content, onerror, "GET");
}
function onerror() {
alert("很抱歉,服务器出现错误,当前窗口将关闭!");
window.opener = null;
window.close();
运行环境
Java≥6、Tomcat≥7.0、MySQL≥5.5
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
技术框架
CSS+JavaScript+ajax+jsp Servlet jdbc MySQL
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
登录、注册、退出、聊天