23,404
社区成员
发帖
与我相关
我的任务
分享
CREATE TABLE `msg` (
`id` int(11) NOT NULL auto_increment,
`senduid` int(11) default NULL, --发送人uid
`recvuid` int(11) default NULL, --接收人uid
`senddate` datetime default NULL, --发送时间
`msg` varchar(1000) default NULL, --发送消息
`iframe` int(11) default NULL, --是否已经被接收
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=230 DEFAULT CHARSET=utf8;
CREATE TABLE `usertable` (
`uid` int(11) NOT NULL auto_increment,
`userName` varchar(50) default NULL,
PRIMARY KEY (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
public class MsgBean
{
private int id;
private Timestamp sendDate;
private String msgContent;
private int sendUid;
private int recivUid;
//get set
}
public class UserBean
{
private Integer uid;
private String username;
//get set
}
String msgContext = request.getParameter("saytext").replaceAll("\n|\r\n","</br>");
<%@ page language="java" contentType="text/html;charset=UTF-8" session="false"%>
<%@page import="com.lzw.bean.RefMsgService"%>
<%@page import="com.lzw.bean.UserBean"%>
<html>
<head>
<meta http-equiv="Refresh" content= "3;URL=refMsg.jsp">
</head>
<body>
<%
UserBean user = (UserBean) request.getSession().getAttribute("user");
String newMsg = null;
if (user.getUid() == 1)
{
newMsg = RefMsgService.getContent(2, 1,user.getUid());
}
else
{
newMsg = RefMsgService.getContent(1, 2,user.getUid());
}
if (newMsg == null){
return;
}
%>
<SCRIPT LANGUAGE="javascript">
var obj= parent.document.getElementById("msgs");
if(obj.innerHTML != null)
{
obj.innerHTML=obj.innerHTML+ "<%=newMsg%>";
} else
{
obj.innerHTML = "<%=newMsg%>";
}
obj.doScroll('scrollbarPageDown');
</script>
<!--
function getNowDate() {
var dateObj = new Date();
var formatDate = "[" + dateObj.getYear( )+ "-" + dateObj.getMonth()+"-"+dateObj.getDay() + " " + dateObj.getHours()+":"+dateObj.getMinutes()+":"+dateObj.getSeconds()+"]";
return formatDate;
}
var flag ="<div><font color=#ff0000>" + getNowDate()+" 您说:</font></br></div>"
var obj= parent.document.getElementById("msgs");
var newMsg = "<div><font color=#ff0000>" +parent.document.getElementById("sayText").value + "</font></br></div>";
obj.innerHTML=obj.innerHTML + flag + newMsg;
obj.doScroll('scrollbarPageDown');
-->
</body>
</html>
<%@ page language="java" contentType="text/html;charset=UTF-8" session="false"%>
<%@page import="com.lzw.bean.RefMsgService"%>
<%@page import="com.lzw.bean.UserBean"%>
<html>
<head>
<meta http-equiv="Refresh" content= "3;URL=refMsg.jsp">
</head>
<body>
<%
UserBean user = (UserBean) request.getSession().getAttribute("user");
String newMsg = null;
if (user.getUid() == 1)
{
newMsg = RefMsgService.getContent(2, 1,user.getUid());
}
else
{
newMsg = RefMsgService.getContent(1, 2,user.getUid());
}
if (newMsg == null){
return;
}
%>
<SCRIPT LANGUAGE="javascript">
var obj= parent.document.getElementById("msgs");
if(obj.innerHTML != null)
{
obj.innerHTML=obj.innerHTML+ "<%=newMsg%>";
} else
{
obj.innerHTML = "<%=newMsg%>";
}
obj.doScroll('scrollbarPageDown');
</script>
<!--
function getNowDate() {
var dateObj = new Date();
var formatDate = "[" + dateObj.getYear( )+ "-" + dateObj.getMonth()+"-"+dateObj.getDay() + " " + dateObj.getHours()+":"+dateObj.getMinutes()+":"+dateObj.getSeconds()+"]";
return formatDate;
}
var flag ="<div><font color=#ff0000>" + getNowDate()+" 您说:</font></br></div>"
var obj= parent.document.getElementById("msgs");
var newMsg = "<div><font color=#ff0000>" +parent.document.getElementById("sayText").value + "</font></br></div>";
obj.innerHTML=obj.innerHTML + flag + newMsg;
obj.doScroll('scrollbarPageDown');
-->
</body>
</html>
<html>
<script>
var f="width=450,height=458,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no";
var result = window.open("chatFrame.jsp","",f);
if (result!=null) {
result.focus();
window.opener=null;
window.close();
}
</script>
</html>
//charFrame.jsp 聊天页面
[code=HTML]
<%@ page language="java" contentType="text/html;charset=UTF-8" session="false" %>
<html>
<head>
<script type="text/javascript">
function myKeyDown()
{
if ((event.altKey)&&
((event.keyCode==37)|| //屏蔽 Alt+ 方向键 ←
(event.keyCode==39))){ //屏蔽 Alt+ 方向键 →
event.returnValue=false;
return ;
}
if (/*(event.keyCode==8)||*/ //屏蔽退格删除键
(event.keyCode==116)){ //屏蔽 F5 刷新键
event.keyCode=0;
event.returnValue=false;
return ;
}
if ((event.ctrlKey)&&(event.keyCode==78)){ //屏蔽 Ctrl+n
event.returnValue=false;
return ;
}
if ((event.shiftKey)&&(event.keyCode==121)){ //屏蔽 shift+F10
event.returnValue=false;
return ;
}
if (event.keyCode==122){ //屏蔽 F11
event.keyCode=0;
event.returnValue=false;
return ;
}
event.returnValue=true;
}
</script>
<style>
.chatContent {
overflow: auto;
height: 210px;
text-align: left;
line-height: 20px;
width: 424px;
border: 2px inset;
font-family: "宋体";
ime-mode: active;
}
.sendContent {
height: 90px;
width: 424px;
text-align: left;
overflow: auto;
font-family: "宋体";
}
</style>
</head>
<!-- oncontextmenu="self.event.returnValue=false"-->
<body onkeydown="myKeyDown();" oncontextmenu="return false">
<form action="sendMsg.jsp" id="say" method="post" target="sendFrame">
<table width="400" border="0" cellpadding="0" cellspacing="1"
bgcolor="#D3E4FD">
<tr>
<td height="35">聊天系统</td>
</tr>
<tr>
<td valign="top" bgcolor="#FFFFFF"><div class="chatContent" id="msgs"></div></td>
</tr>
<tr>
<td>
<textarea class="sendContent" name="saytext" id="saytext"></textarea>
</td>
</tr>
<tr>
<td>
<input type="button" onclick="sendMsg();" value="发送" />
</td>
</tr>
</table>
</form>
<iframe id="msgFrame" name="msgFrame" src="refMsg.jsp" width="0" marginwidth="0" height="0" marginheight="0" scrolling="no" frameborder="0"></iframe>
<iframe name="sendFrame" id="sendFrame" src="" width="0" height="0"></iframe>
<script language=javascript>
function sendMsg()
{
document.getElementById("say").submit();
}
</script>
</body>
</html>
public static String getUserNameByUid(int uid)
{
Connection conn = DBConnection.getConnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
try
{
pstmt = conn.prepareStatement("select userName from usertable where uid=?");
pstmt.setInt(1, uid);
rs = pstmt.executeQuery();
while (rs.next())
{
return rs.getString("userName");
}
}
catch (SQLException e)
{
e.printStackTrace();
}finally{
try
{
rs.close();
pstmt.close();
conn.close();
}
catch (SQLException e)
{
e.printStackTrace();
}
}
return null;
}
public static String getNowDate()
{
Calendar calendar = Calendar.getInstance();
return RefMsgService.formatDate(calendar.getTime());
}
public static String formatDate(Date date)
{
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String formatDate = format.format(date);
return formatDate;
}
}
package com.lzw.bean;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Date;
public class RefMsgService
{
public static String getContent(int senduid, int recivuid, int uid)
{
List<MsgBean> list = queryAllmsg(senduid, recivuid);
StringBuffer sb = new StringBuffer();
if(list != null)
{
for (MsgBean msgBean : list)
{
sb.append(getMsg(msgBean, uid));
}
}
return sb.toString();
}
private static List<MsgBean> queryAllmsg(int senduid, int recivuid)
{
List<MsgBean> list = new ArrayList<MsgBean>();
Connection conn = DBConnection.getConnection();
PreparedStatement pstmt1 = null;
PreparedStatement pstmt2 = null;
ResultSet rs = null;
try
{
pstmt1 = conn.prepareStatement("select * from msg where senduid=? and recvuid=? and iframe=1 order by senddate asc");
pstmt1.setInt(1, senduid);
pstmt1.setInt(2, recivuid);
rs = pstmt1.executeQuery();
while (rs.next())
{
MsgBean bean = new MsgBean();
bean.setId(rs.getInt("id"));
bean.setSendUid(rs.getInt("senduid"));
bean.setRecivUid(rs.getInt("recvuid"));
bean.setMsgContent(rs.getString("msg"));
bean.setSendDate(rs.getTimestamp("senddate"));
list.add(bean);
}
for (MsgBean msgBean : list)
{
pstmt2 = conn.prepareStatement("update msg set iframe=0 where id=?");
//这里偷懒了, 写死了.
pstmt2.setInt(1, msgBean.getId());
pstmt2.executeUpdate();
}
return list;
}
catch (SQLException e)
{
e.printStackTrace();
}finally{
try
{
rs.close();
pstmt1.close();
if(pstmt2 != null)
{
pstmt2.close();
}
conn.close();
}
catch (SQLException e)
{
e.printStackTrace();
}
}
return null;
}
public static String getMsg(MsgBean msg, int uid)
{
StringBuffer sb = new StringBuffer();
sb.append("<div><font size=2 color=#888888> [");
sb.append(RefMsgService.formatDate(msg.getSendDate()));
sb.append("] ");
String sendPeople = null;
if(uid == msg.getSendUid())
{
sendPeople = "您";
}
else
{
sendPeople = getUserNameByUid(msg.getSendUid());
}
sb.append("" + sendPeople + "说:</font></br></div>");
sb.append("<div><font color=#666666>");
sb.append(msg.getMsgContent());
sb.append("</font></br></div>");
return sb.toString();
}