您的位置:程序门 -> java -> web 开发



模仿qq聊天用jsp做了一个简单的聊天程序遇到的几个小问题!有兴趣者入!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


模仿qq聊天用jsp做了一个简单的聊天程序遇到的几个小问题!有兴趣者入![已结贴,结贴人:hhgg123]
发表于:2007-05-30 17:33:51 楼主
我写了一个聊天的小程序,主界面是一个frameset,包含了三个页面:input.jsp(用来让用户输入聊天信息),chatspace.jsp(用来显示聊天信息),user.jsp(显示在线用户)。

问题1:
input.jsp里用到了一个表单text来提交聊天信息,如何在用户发送该信息后,让text域清空呢?我试了用一个javascript函数作前台验证,当用户点下submit时,onclick“erase()”,但是这样的话,text中聊天信息就传不到chatspace.jsp里了!怎样才能在chatspace.jsp文件接受到text里的值后才将text域清空呢?

问题2:
因为是一个frameset,chatspace.jsp里边有个滚动条,但是每次用户提交聊天信息以后,chatspace.jsp里的滚动条都会跳到最上端,要阅读聊天信息还得往下拉,很不方便,怎样才能让滚动条一直在最下方呢?就像qq似的?

发表于:2007-05-30 17:38:531楼 得分:0
在页面加载的时候就把text=null;

滚动条就不知道了。
发表于:2007-05-30 17:50:382楼 得分:0
将text=null,显示效果是在文本域中显示一个 "null "单词啊!而不是什么也没有!
发表于:2007-05-30 18:09:363楼 得分:0
text.length=0;       -_-#
发表于:2007-05-30 18:27:154楼 得分:1

问题1:
  在text控件中加个键盘事件,针对敲回车时触发submit
发表于:2007-05-30 18:42:125楼 得分:0
页面加载时做空值初始化。用js
发表于:2007-05-30 18:46:026楼 得分:5
package   liaotian;

import   javax.servlet.*;
import   javax.servlet.http.*;
import   java.io.*;
import   java.util.*;

public   class   messageservlet   extends   httpservlet   {
        private   static   final   string   content_type   =   "text/html;   charset=gbk ";

        //initialize   global   variables
        public   void   init()   throws   servletexception   {
        }

        //process   the   http   get   request
        public   void   doget(httpservletrequest   request,   httpservletresponse   response)   throws
                        servletexception,   ioexception   {
                response.setcharacterencoding( "gbk ");
                request.setcharacterencoding( "gbk ");
                response.setcontenttype(content_type);
                printwriter   out   =   response.getwriter();
                out.println( " <html> ");
                out.println( " <head> <title> messageservlet </title> </head> ");
                out.println( " <body   bgcolor=\ "#ffffff\ "> ");
                string   strmsg   =   request.getparameter( "message ");
                if   (strmsg==null ¦ ¦strmsg.equals( " "))
                {
                        displayhtml(out);
                }
                else
                {
                        servletcontext   app   =   getservletcontext();
                        stringbuffer   objmsg   =(stringbuffer)app.getattribute( "objmessage ");
                        if   (objmsg==null)
                        {
                                objmsg   =   new   stringbuffer();
                        }
                        string   name   =   request.getparameter( "name ");
                        objmsg.append( " <b> "+name+ "说: </b> "+strmsg+ " <br> ");
                        app.setattribute( "objmessage ",objmsg);
                        displayhtml(out);
                }

                out.close();
        }
        public   void   displayhtml(printwriter   out)
        {
                out.println( " <html> ");
                out.println( " <head> <title> messageservlet </title> </head> ");
                out.println( " <body   bgcolor=#ffffff   onload   =   javascript:frm.message.focus()> ");
                out.println( " <form   method   =   post   name   =frm> ");
                out.println( " <input   type   =   text   name   =   message> ");
                out.println( " <input   type=submit   value   =   '发送 '> ");
                out.println( " </form> ");
                out.println( " </body> ");
                out.println( " </html> ");
        }

        //process   the   http   post   request
        public   void   dopost(httpservletrequest   request,   httpservletresponse   response)   throws
                        servletexception,   ioexception   {
                doget(request,   response);
        }

        //clean   up   resources
        public   void   destroy()   {
        }
}
就这样
发表于:2007-05-30 18:48:007楼 得分:1
这样你把信息倒过来输出不就解决了吗~~~!!!
对吧
发表于:2007-05-30 18:53:108楼 得分:2
看看行不   不行   我把我做的聊天发给你啊   我   qq596660770
发表于:2007-05-31 00:17:089楼 得分:11
晕,这还不简单,把它倒过来,从上往下显示不就行了。
发表于:2007-05-31 08:51:5110楼 得分:0
该回复于2007-12-28 11:41:13被管理员或版主删除
发表于:2007-05-31 09:13:1211楼 得分:0
滚动条的问题:
把下面的代码放在页面的最下面
<script>
window.scroll(0,document.body.scrollheight);
</script>
发表于:2007-05-31 12:30:2912楼 得分:0
呵呵,用ajax做吧,我去年做过一个
发表于:2007-06-04 11:23:2413楼 得分:0
回复gavinsky_feifei()   :你用的两个displayhtml(out)调用结果不都是一样的吗?

string   name   =   request.getparameter( "name ");
objmsg.append( " <b> "+name+ "说: </b> "+strmsg+ " <br/> ");
app.setattribute( "objmessage ",objmsg);
displayhtml(out);
这段代码和
if   (strmsg==null ¦ ¦strmsg.equals( " "))
{
displayhtml(out);
}的输出效果不是一样的吗?


快速检索

最新资讯
热门点击