记录自己关于web做过的一些课设项目(二)
程序员文章站
2024-02-02 13:37:34
...
上一篇记录了聊天室的登录以及数据库的连接,这一篇我打算记录一下聊天室是如何实现的
聊天室的主界面框架,我分为两个部分,上面是之前内容显示的区域,下面是输入的内容以及发送的区域
主界面框架如下
<HTML>
<meta http-equiv ="Content-Type" content ="text/html;charset=utf-8">
<HEAD>
<TITLE>chat</TITLE>
</HEAD>
<frameset rows="90%,10%">
<frame src="chat_up.jsp"name="top"></frame>
<frame src="chat_down.jsp"name="bottom"></frame>
</frameset>
</HTML>
我上下两个区域都是用jsp实现的
首先说一下chat_down区域,我是用的表单,onsubmit是用来判断发送内容是否为空的,表单的内容是传递到chat_up.jsp中的,用的post方法,表单中有文本框,和提交清空离开三个按钮,上一篇我有写过,使用session,将用户名打包传递到chat聊天室,可以实现XX用户说,这一个功能。
在实现这个聊天室的时候也遇到一些问题,一开始我是没有target这一个部分的,但是遇到一个问题,我按离开按钮的时候,chat_down部分没有跳转,只有chat_up部分实现了跳转,我经过查询,发现在离开按钮实现跳转到主页面的时候,需要加一个target=“—parent”来实现整体的跳转
<script type="text/javascript">
function isk(){
if(FORM1.mywords.value==""){
alert("不能发送空消息");
return false;
}
}</script>
</head>
<%
request.setCharacterEncoding("utf-8");
String username=(String)session.getAttribute("user");
out.print("用户"+username+"说:");
%>
<body>
<FORM NAME="FORM1"ACTION="chat_up.jsp" METHOD="post" target="top"onsubmit="return isk()">
<INPUT TYPE="TEXT" SIZE="30" NAME="mywords" VALUE="I LIKE CHAT">
<INPUT TYPE="SUBMIT" name="submit" VALUE="提交">
<INPUT TYPE="RESET" name="reset" VALUE="清空">
<a href="allmain.html" target="_parent"><INPUT TYPE="button" name="exit" value="离开"></a>
</FORM>
</body>
然后说一下chat_up区域,通过表单传递,将表单中用户输入的内容传递到显示框中,通过session获取用户名称,使用application来记录,将用户在时间发送内容保存到mywords里,使用application实现之前对话的所有记录,并打印在显示框中,实现之前所有聊天记录的显示。
<form name="form2" method="post">
<%@ page import="java.util.*" import="java.text.SimpleDateFormat"%>
<%
request.setCharacterEncoding("utf-8");
String username = (String) session.getAttribute("user");
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String time = format.format(date);
if (application.getAttribute("mywords") == null) {
application.setAttribute("mywords", "Start:");
}
if (request.getParameter("mywords") != null) {
String mywords = username + "在" + time + "说" + "<br>" + request.getParameter("mywords");
mywords = (String) application.getAttribute("mywords") + "<br>" + mywords;
application.setAttribute("mywords", mywords);
out.print((String) application.getAttribute("mywords"));
}
%>
</form>