许多问题,关于jsp搭建一个简易聊天室

poisson0106 2012-12-03 04:23:21
如题,设计思想是从页面用表单提交到servlet,在servlet上接收,读取一个application对象(如果没有就创建),之后再把更新好的application对象存到一个javabean内,使前段的jsp调用这个javabean的代码找到历史聊天记录并输出,设计是这样的,但问题非常多,首先application对象无论执行几次都是每次执行时就新创建,说明一直没有创建成功。第二,读到JSP页面上不知道如何输出到文本域内,求助各位大神。代码如下
前台jsp部分

<%@ page language="java" contentType="text/html; charset=utf-8" import="sjw.pratice.TransferInfo"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>聊天室</title>
</head>
<script type="text/javascript">
var info=Record;
var f=document.getElementById("form1");
f.textbox1.value=info;
</script>
<body>
<form id="form1" name="form1" method="post" action="ReceiveInfo">
<table width=888 height="466" border="3" cellpadding="3" cellspacing="3">
<tr align="center">
<td height=375 colspan="2"><textarea name="textbox1" cols="103" rows="28" readonly="readonly" id="textbox1"></textarea></td>
<td width=151 rowspan="2"><textarea name="textbox3" cols="15" rows="40" readonly="readonly" id="textbox3"></textarea></textarea></td>
</tr>
<tr>
<td width=656 height="76"><textarea name="textbox2" id="textbox2" cols="90" rows="5"></textarea></td>
<td width=71 align="center"><input type="submit" name="button1" id="button1" value="发送" /></td>
</tr>
</table>
</form>
<%!String Record=TransferInfo.getchattingRecord(); %>
</body>
</html>

servlet部分

package sjw.pratice;

import java.io.IOException;
import java.util.Calendar;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.PageContext;

@WebServlet("/ReceiveInfo")
public class ReceiveInfo extends HttpServlet {
private static final long serialVersionUID = 1L;
public ReceiveInfo() {
super();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String record=new String();
ServletContext application=super.getServletContext();
Calendar date=Calendar.getInstance();
record=date.getTime().toString()+"\n"+request.getParameter("textbox2"); //读取发来的消息
if(application.getAttribute("record")!=null) //判断application对象是否存在,之后存入
{
String container=application.getAttribute("record").toString()+record;
application.setAttribute("record", container);
}
else
{
application.setAttribute("record", record);
}
TransferInfo.setchattingRecord((String)application.getAttribute("record")); //讲结果发到担任转发的Javabean里
response.sendRedirect("ChatRoom.jsp"); //跳转回前台页面
}

}


javabean部分

package sjw.pratice;

public class TransferInfo {
public static void setchattingRecord(String record)
{
chattingRecord=record;
}
public static String getchattingRecord()
{
return chattingRecord;
}
private static String chattingRecord;
}
...全文
343 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kissoday 2012-12-05
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/kissoday/3088628 这个是我写的一个简单的WEB聊天室 希望对你有帮助。
小柱子 2012-12-05
  • 打赏
  • 举报
回复
引用 3 楼 poisson0106 的回复:
引用 2 楼 Andyshang11 的回复:我做过聊天室,是用Jsp+struts+Hibernate+Spring做的 servlet中返回一个List集合,在jsp中获取信息,可以使用<%while(rs.next())%>遍历,输出聊天信息。 是servlet直接返回到JSP页面么,这怎么处理?
可以的,从servlet返回一个集合给JSP页面,然后jsp页面得到集合,并进行遍历
poisson0106 2012-12-04
  • 打赏
  • 举报
回复
引用 2 楼 Andyshang11 的回复:
我做过聊天室,是用Jsp+struts+Hibernate+Spring做的 servlet中返回一个List集合,在jsp中获取信息,可以使用<%while(rs.next())%>遍历,输出聊天信息。
是servlet直接返回到JSP页面么,这怎么处理?
poisson0106 2012-12-04
  • 打赏
  • 举报
回复
引用 4 楼 leyestd 的回复:
werwerwer
这是什么.........能详细解释一下么?
leyestd 2012-12-04
  • 打赏
  • 举报
回复
werwerwer
小柱子 2012-12-03
  • 打赏
  • 举报
回复
我做过聊天室,是用Jsp+struts+Hibernate+Spring做的 servlet中返回一个List集合,在jsp中获取信息,可以使用<%while(rs.next())%>遍历,输出聊天信息。
poisson0106 2012-12-03
  • 打赏
  • 举报
回复
补充问一下,如果不用js中转,有啥办法可以直接把传回的信息放到文本域里??

81,122

社区成员

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

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