jsp聊天程序

w_j123 2009-03-23 03:32:52
我是刚学jsp的 老师让用jsp做一个简单的聊天程序 请高手给点指点 谢谢喽
...全文
118 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
w_j123 2009-03-23
  • 打赏
  • 举报
回复
非常感谢啊 应该可以用自动刷新吧 像refresh应该可以自动刷新的 O(∩_∩)O哈哈~
hoojo 2009-03-23
  • 打赏
  • 举报
回复

main.jsp
<frameset rows="85%,*">


<frameset cols="80%,*">


<frame src="message.jsp" name="message" />

<frame src="userList.jsp" name="userList">


</frameset>

<frame src="sendMessage.jsp" name="sendMessage" />

</frameset>
<noframes></noframes>



message.jsp
<%
request.setCharacterEncoding("gbk");
List messageList = (List) application.getAttribute("messageList");
String message = request.getParameter("message");
Users user = (Users) session.getAttribute("user");

if (messageList == null || messageList.size() == 0) {
messageList = new ArrayList();
application.setAttribute("messageList",messageList);
}
if (message != null && !"".equals(message)) {
messageList.add("<img src='../image/iboy.gif' /> <font color='blue'>"+user.getUserName() + " <b>说:</b></font><br />         "
+ message);
}
%>
<table width="100%" border="0" align="left" cellpadding="0"
cellspacing="0">

<%
for (int i = 0; i < messageList.size(); i++) {
String userName = (String) messageList.get(i);

%>


<tr align="left">
<td height="20" class="p16"><%=userName%></td>
</tr>

<%

}
%>
</table>

registerManage.jsp
<%
String userName = request.getParameter("userName");
String password = request.getParameter("password");
String param = request.getParameter("param");//获取param参数,用以判断用户操作是注册还是登录

UserDao userDao = new UserDao();
//判断用户输入信息是否为空
if (param == null || userName == null || password == null) {
response.sendRedirect("register.jsp");
} else if (param != null && "login".equals(param)) { //登录操作
//根据用户名和密码查询数据库
Users user = userDao.findUsers(userName, password);
if (user != null) { //判断当前用户是否存在
//如果用户存在,把当前用户名保存到application中的List集合内
List userList = (List) application.getAttribute("users");
if (userList == null || userList.size() == 0) { //针对第一个登录用户的操作
userList = new ArrayList();
userList.add(userName);
} else { //针对其他用户的操作
boolean bool = true;
for (int i = 0; i < userList.size(); i++) {

if (userName.equals(userList.get(i).toString())) {
bool = false;
break;
}
}
if (bool)
userList.add(userName);
}
//把当前用户的信息保存到session中
session.setAttribute("user", user);
application.setAttribute("users", userList);
response.sendRedirect("main.jsp");
} else{ //如果用户不存在,给出提示后,返回到网站首页
//response.sendRedirect("register.jsp");
out
.print("<script type='text/javascript'>alert('用户名或密码错误,请重新登录。');location.replace('index.jsp');</script>");
}
} else { //注册操作
int count = userDao.insertUser(userName, password,0);
if (count > 0) {
out
.print("<script type='text/javascript'>alert('注册成功,请登录。');location.replace('index.jsp');</script>");
} else {
out
.print("<script type='text/javascript'>alert('注册失败,请重新注册。');history.go(-1);</script>");
}
}
%>

sendManage.jsp
<script type="text/javascript">
function checkSend(){
if(document.send.msg.value==""){
alert("不能发送空信息。");
return false;
}else{
document.send.message.value=document.send.msg.value;
document.send.msg.value="";
return true;
}

}
</script>
</head>

<body>
<form action="message.jsp" method="post" name="send" onSubmit="return checkSend()" target="message">
<input type="hidden" name="message" value="" />
<p align="center">
请输入发送信息:
<input type="text" name="msg" size="30" />      
<input type="submit" value="发送" />
</p>
</form>
</body>

userList.jsp
<%

List userList = (List) application.getAttribute("users");
// Users user=(Users) session.getAttribute("users");
%>

<html>
<head>

<title>message</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="refresh" content="3">
<link rel="stylesheet" type="text/css" href="styles.css">
</head>

<body onload="scroll(0,9999)">
<table width="100%" border="0" align="left" cellpadding="0"
cellspacing="0" bordercolor="#EBEBEB">
<%
for (int i = 0; i < userList.size(); i++) {
String userName = (String) userList.get(i);

%>


<tr align="left">
<td height="20"class="p16"><img src="../image/iboy.gif" /> <%=userName%></td>
</tr>
<%
}
%>
</table>


这样就可以了,所有的代码均没有错误!
我做好的,缺点是要不断的刷新页面!
每次只能看到一条消息。
可以换种思想,把消息写到数据库中。
不过要不断的查询数据库,可以定时每5分钟
把消息写入数据库,然后查询出来。
这样可能好点。
先看看,以上的方法吧!
^_@
oklinsong 2009-03-23
  • 打赏
  • 举报
回复
mark
w_j123 2009-03-23
  • 打赏
  • 举报
回复
最好是多人聊天室 (*^__^*) 嘻嘻……
zhuhong110450 2009-03-23
  • 打赏
  • 举报
回复
请问是单人聊天室还是多人聊天室??
w_j123 2009-03-23
  • 打赏
  • 举报
回复
先谢谢了 老师说用到iframe 但是因为从没做过所以没有思路啊 能不能再具体点啊
hoojo 2009-03-23
  • 打赏
  • 举报
回复
提示:
将用户发送的消息保存在List 中

Appliction.setAttribute("list",list);

最后取出来
显示在页面上

注意第一次的时候要 创建List
以后就直接list.add 就可以了
^_@

内容概要:本文围绕“可再生能源发电与电动汽车的协同调度策略”展开硕士论文级别的研究与复现工作,基于Matlab平台构建了高比例可再生能源接入背景下电力系统与电动汽车(EV)之间的多时间尺度协同优化模型。研究重点在于应对风光发电不确定性,充分利用电动汽车作为移动储能单元的灵活充放电能力(含V2G技术),实现电网削峰填谷、提升新能源消纳效率与系统运行经济性。文中综合考虑了异质电动车集群特性、V2G过程中的损耗约束以及随机因素影响,采用如深度确定性策略梯度(DDPG)强化学习、混合整数线性规划(MILP)等先进优化算法进行求解,并通过基准模型对比验证了所提自适应调度策略在提升电网稳定性、降低运行成本方面的有效性。; 适合人群:具备一定电力系统基础知识、优化理论背景及Matlab编程能力的研究生、科研人员,以及从事新能源并网、智能电网调度、车网互动(V2G)等方向的工程技术人员。; 使用场景及目标:①学习并复现已发表高水平硕士论文中的协同调度建模方法与仿真流程;②掌握将深度强化学习(如DDPG)应用于虚拟电厂、电动汽车集群调度等复杂非线性决策问题的技术路径;③为开展新能源消纳、需求侧响应、微电网优化运行等相关课题的研究提供可复用的代码框架与创新思路参考。; 阅读建议:建议读者结合文中提供的完整Matlab代码与技术文档,深入理解模型构建逻辑、算法实现细节与参数设置依据,优先在Simulink/Matlab环境中运行并调试仿真案例,通过调整场景参数与算法超参,探究不同策略对调度效果的影响,从而深化对协同调度机制与智能优化方法应用的理解。

81,111

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧