多用户即时通讯系统044.编码实现034.7功能实现-服务器推送消息功能实现4.7.1思路分析服务器推送新闻,本质其实就是群发消息在服务器启动一个独立线程,专门负责推送新闻该线程通过管理线程的集合,把所有的线程的socket拿到,并发送Messgae对象信息客户端通过接收,自然就拿到了新闻推送信息4.7.2代码实现只需要改动服务端即可1.创建Utility类该类与客户端的工具类一致,用于处理各种情况的输入packageqqserver.utlis;/***工具类的作用:*处理各种情况的用户输入,并且能够按照程序员的需求,得到用户的控制台输入。*/importjava.util.Scanner;
家居网购项目实现04以下皆为部分代码,详见https://github.com/liyuelian/furniture_mall.git10.功能09-后台管理删除家居10.1需求分析/图解需求如下:管理员进入到家居管理页面点击删除家居连接,弹出确认窗口,确认删除,取消放弃10.2思路分析10.3代码实现10.3.1dao层FurnDAO接口/***通过传入的id,删除furn表中对应的记录**@paramidid*@return返回受影响的行数*/publicintdeleteFurnById(intid);FurnDAOImpl@OverridepublicintdeleteFurnByI
家居网购项目实现04以下皆为部分代码,详见https://github.com/liyuelian/furniture_mall.git10.功能09-后台管理删除家居10.1需求分析/图解需求如下:管理员进入到家居管理页面点击删除家居连接,弹出确认窗口,确认删除,取消放弃10.2思路分析10.3代码实现10.3.1dao层FurnDAO接口/***通过传入的id,删除furn表中对应的记录**@paramidid*@return返回受影响的行数*/publicintdeleteFurnById(intid);FurnDAOImpl@OverridepublicintdeleteFurnByI
多用户即时通讯系统034.编码实现024.3功能实现-无异常退出系统4.3.1思路分析上述代码运行时,在客户端选择退出系统的时候,可以发现程序并没有停止运行,原因是:退出时,程序将循环标志loop设为false,退出了内层循环,而外层循环因为也用了loop来作为循环条件,外层循环也同样退出。此时在客户端类QQView中的主线程已经结束,但是在循环过程中,因为与服务端连接而产生的线程并没有结束,整个进程也就没有结束,因此程序仍在运行中。解决方法:客户端:在main线程中调用方法,给服务端发送一个退出系统的message对象,然后调用System.exit(0)指令,正常退出。这样整个进程就可以关
多用户即时通讯系统034.编码实现024.3功能实现-无异常退出系统4.3.1思路分析上述代码运行时,在客户端选择退出系统的时候,可以发现程序并没有停止运行,原因是:退出时,程序将循环标志loop设为false,退出了内层循环,而外层循环因为也用了loop来作为循环条件,外层循环也同样退出。此时在客户端类QQView中的主线程已经结束,但是在循环过程中,因为与服务端连接而产生的线程并没有结束,整个进程也就没有结束,因此程序仍在运行中。解决方法:客户端:在main线程中调用方法,给服务端发送一个退出系统的message对象,然后调用System.exit(0)指令,正常退出。这样整个进程就可以关
多用户即时通讯系统034.编码实现024.4功能实现-私聊功能实现4.4.1思路分析客户端-发送者:用户在控制台输入信息,客户端接收内容将消息构建成Messgae对象,通过对应的socket发送给服务器服务器:可以读取到客户端(发送者)发送给某个用户(接收者)的消息从管理线程的集合中,根据messgae对象的信息,获取到接收者的userId,从而获取接收者的socket最后将Message对象转发给指定客户(接收者)客户端-接收者:在接收者的线程(通信线程中),读取到发送者的message消息,并显示即可4.4.2代码实现1.客户端1.MessageClientService类这里新建一个类,
多用户即时通讯系统034.编码实现024.4功能实现-私聊功能实现4.4.1思路分析客户端-发送者:用户在控制台输入信息,客户端接收内容将消息构建成Messgae对象,通过对应的socket发送给服务器服务器:可以读取到客户端(发送者)发送给某个用户(接收者)的消息从管理线程的集合中,根据messgae对象的信息,获取到接收者的userId,从而获取接收者的socket最后将Message对象转发给指定客户(接收者)客户端-接收者:在接收者的线程(通信线程中),读取到发送者的message消息,并显示即可4.4.2代码实现1.客户端1.MessageClientService类这里新建一个类,
家居网购项目实现05以下皆为部分代码,详见https://github.com/liyuelian/furniture_mall.git12.功能11-后台分页(分页显示家居)12.1需求分析/图解管理员进入到家居管理后台页面点击家居管理,可以按分页规则显示家居信息12.2思路分析分页显示,每次发出请求后返回的数据是不一样的;不同的页面显示的页数不同,导航条也会根据当前页数变化;并且用户可能会改变每页的显示数量。这些数据如果分开进行操作,将会非常麻烦,因为是这些数据分散的,经常变化的。这里创建一个数据模型,将经常变化的这些数据封装到里面,该数据模型体现为一个Javabean,该Javabean
家居网购项目实现05以下皆为部分代码,详见https://github.com/liyuelian/furniture_mall.git12.功能11-后台分页(分页显示家居)12.1需求分析/图解管理员进入到家居管理后台页面点击家居管理,可以按分页规则显示家居信息12.2思路分析分页显示,每次发出请求后返回的数据是不一样的;不同的页面显示的页数不同,导航条也会根据当前页数变化;并且用户可能会改变每页的显示数量。这些数据如果分开进行操作,将会非常麻烦,因为是这些数据分散的,经常变化的。这里创建一个数据模型,将经常变化的这些数据封装到里面,该数据模型体现为一个Javabean,该Javabean
家居网购项目实现06以下皆为部分代码,详见https://github.com/liyuelian/furniture_mall.git14.功能13-首页分页14.1需求分析/图解顾客进入首页页面分页显示家居正确显示分页导航条14.2思路分析14.3代码实现14.3.1web层配置customerFurnServletCustomerFurnServletcom.li.furns.web.CustomerFurnServletCustomerFurnServlet/customerFurnServlet实现servletpackagecom.li.furns.web;importcom.li