您现在的位置是:首页 > 编程语言学习 > 后端编程语言 > 文章正文 后端编程语言

基于javaweb+JSP+Servlet实现聊天室功能

2022-04-21 13:52:17 后端编程语言

简介基于javaweb+JSP+Servlet聊天室开发工具:eclipse idea myeclipse sts等均可配置运行适用课程设计,大作业,毕业设计,项目练习,学习演示

基于javaweb+JSP+Servlet聊天室

开发工具:eclipse/idea/myeclipse/sts等均可配置运行

适用

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

				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;
		// 根据用户名及密码查询用户信息
		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);
			// 执行查询获取结果集
			ResultSet rs = ps.executeQuery();
			// 判断结果集是否有效
			if(rs.next()){
				// 实例化一个用户对象
				user = new User();
				// 对用户对象属性赋值
				user.setId(rs.getInt("id"));
				user.setUsername(rs.getString("username"));
function login(form) {
if (form.username.value == "") {
alert("用户不能为空!");
return false;
}
if (form.password.value == "") {
alert("密码不能为空!");
return false;
}
}
</script>
</head>
<body>
<!-- 在外层添加一个div,把行内容居中,添加.row .justify-content-center -->
<div class="row justify-content-center ">
<!-- 下面是我要居中的div,添加.col-center-block -->
<div class="col-center-block col-sm-4 col-xs-4 jumbotron myformdiv ">
<h2 class="text-center">聊天室登录</h2>
<div>
<form class="bs-example bs-example-form" role="form" id=login action="LoginServlet" method="post" onSubmit="return login(this);">
<div class="input-group-lg">
<span class="input-group-addon"><b>用户名</b></span>
<input type="text" class="form-control" placeholder="username" name="username" id="username">
</div>
<br>
			// 释放此 PreparedStatement 对象的数据库和 JDBC 资源
			ps.close();
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			// 关闭数据库连接
			ConnectDB.closeConnection(conn);
		}
		return user;
	}
	/**
	 * 判断用户名在数据库中是否存在
	 * @param username 用户名
	private String username;// 用户名
	private String password;// 密码
	private String sex;		// 性别
	private String tel;		// 电话
	private String photo;	// 头像
	private String email;	// 电子邮箱
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
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.dao;

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

import com.demo.entity.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;// 密码
	private String sex;		// 性别
	private String tel;		// 电话
	private String photo;	// 头像
	private String email;	// 电子邮箱
<option value="同情的">同情的</option>
<option value="遗憾的">遗憾的</option>
<option value="正义凛然的">正义凛然的</option>
<option value="严肃的">严肃的</option>
<option value="慢条斯理的">慢条斯理的</option>
<option value="无精打采的">无精打采的</option>
</select>
说:
</td>
<td width="189" align="left"> &nbsp;&nbsp;字体颜色:
<select name="color" size="1" class="wenbenkuang" id="select">
<option selected>默认颜色</option>
<option style="color:#FF0000" value="FF0000">红色热情</option>
			// 关闭数据库连接
			ConnectDB.closeConnection(conn);
		}
		return user;
	}
	/**
	 * 判断用户名在数据库中是否存在
	 * @param username 用户名
	 * @return 布尔值
	 */
	public boolean userIsExist(String username){
		// 获取数据库连接Connection对象
		Connection conn = ConnectDB.getConnection();
		// 根据指定用户名查询用户信息
		String sql = "select * from tb_user where username = ?";
		try {
			// 获取PreparedStatement对象
			PreparedStatement ps = conn.prepareStatement(sql);


public class Messages extends HttpServlet {

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}

protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String action = request.getParameter("action");
if ("loginRoom".equals(action)) {//登录时,写入系统公告
this.loginRoom(request, response);
} else if ("sendMessage".equals(action)) {//发送聊天信息
this.sendMessages(request, response);
} else if ("getMessages".equals(action)) {//从XML文件中读取聊天信息
this.getMessages(request, response);
}
}
}
//保存用户信息
if(flag){
	UserListener ul=new UserListener();
	ul.setUser(username);
	session.setAttribute("user",ul);
	session.setAttribute("username",username);
	user.addUser(ul.getUser());	
	//保存当前登录的用户名
	session.setAttribute("loginTime",new Date().toLocaleString());		//保存登录时间
	response.sendRedirect("Messages?action=loginRoom");
}
%>

运行环境

Java≥6、Tomcat≥7.0、MySQL≥5.5

开发工具

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

技术框架

CSS+JavaScript+ajax+jsp Servlet jdbc MySQL

适用

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

功能说明

登录、注册、退出、聊天

20220312140942

20220312141027

20220312141218

20220312141725

相关文章

站点信息