Ajaweb聊天室-Java

1.介绍:本文的主要目的就是通过Java语言开发基于html通信的聊天程序,主要用到了ajax,html通信,java,jsp。穿越防火墙,在web页面进行通信,没有利用socket,不用另外开设端口进行通信。仅仅利用浏览器的80端口就可以搞定。下面列出主要的代码结构:下面给出涉及到的各个代码:1.ChatService.java类:packagelee;importjava.util.*;importjava.io.*;/**@version1.0*/publicclassChatService{privatestaticChatServicecs;privatePropertiesuserList;privateLinkedList<String>chatMsg;privateChatService(){}publicstaticChatServiceinstance(){if(cs==null){cs=newChatService();}returncs;}publicbooleanvalidLogin(Stringuser,Stringpass)throwsIOException{if(loadUser().getProperty(user)==null){returnfalse;}if(loadUser().getProperty(user).equals(pass)){returntrue;}returnfalse;}publicbooleanaddUser(Stringname,Stringpass)throwsException{if(userList==null){userList=loadUser();}if(userList.containsKey(name)){thrownewException("用户名已经存在,请重新选择用户名");}userList.setProperty(name,pass);saveUserList();returntrue;}publicStringgetMsg(){if(chatMsg==null){chatMsg=newLinkedList<String>();return"";}Stringresult="";for(Stringtmp:chatMsg){result+=tmp+"\n";}returnresu《}publicvoidaddMsg(Stringuser,Stringmsg){if(chatMsg==null){chatMsg=newLinkedList<String>();}if(chatMsg.size()>40){chatMsg.removeFirst();}chatMsg.add(user+"说:"+msg);}////////////////////////////////////////////////////////////////下面是系统的工具方法/////////////////////////////////////////////////////////////privatePropertiesloadUser()throwsIOException{if(userList==null){Filef=newFile("userFile.properties");if(!f.exists())f.createNewFile();userList=newProperties();userList.load(newFileInputStream(f));}returnuserList;}privatebooleansaveUserList()throwsIOException{if(userList==null){returnfalse;}userList.store(newFileOutputStream("userFile.properties"),"userList");returntrue;}}2.ChatServlet.javapackagelee;importjavax.servlet.ServletException;importjavax.servlet.ServletContext;importjavax.servlet.RequestDispatcher;importjavax.servlet..Servlet;importjavax.servlet..ServletRequest;importjavax.servlet..ServletResponse;importjava.io.PrintWriter;importjava.io.IOException;/**@version1.0*Date:*/publicclassChatServletextendsServlet{publicvoidservice(ServletRequestrequest,ServletResponseresponse)throwsIOException,ServletException{request.setCharacterEncoding("UTF-8");Stringmsg=request.getParameter("chatMsg");if(msg!=null!msg.equals("")){Stringuser=(String)request.getSession(true).getAttribute("user");ChatService.instance().addMsg(user,msg);}//设置中文流response.setContentType("text/html;charset=GBK");PrintWriterout=response.getWriter();out.println(ChatService.instance().getMsg());}}3.LoginServlet.javapackagelee;importjavax.servlet.ServletException;importjavax.servlet.ServletContext;importjavax.servlet.RequestDispatcher;importjavax.servlet..Servlet;importjavax.servlet..ServletRequest;importjavax.servlet..ServletResponse;importjava.io.PrintWriter;importjava.io.IOException;/**@author*Date:*/publicclassLoginServletextendsServlet{publicvoidservice(ServletRequestrequest,ServletResponseresponse)throwsIOException,ServletException{Stringname=request.getParameter("name");Stringpass=request.getParameter("pass");if(name==null||pass==null){request.setAttribute("error","用户名和密码都不能为空");forward("/index.jsp",request,response);}if(ChatService.instance().validLogin(name,pass)){re...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

确认删除?