家具网购项目说明1.项目前置技术Java基础正则表达式MysqlJDBC数据库连接池技术满汉楼项目(包括框架图)JavaWeb2.相关说明这里先使用原生的servlet/过滤器,后台是经典的分层结构WEB-Service-DAO-Entity在学习SSM时,我们使用SSM框架(Vue3+ElementPlus+Axios+SSM前后端分离)3.软件项目开发阶段4.项目的需求/界面主页面:选购页面:购物车:后台管理页面:5.项目设计5.1程序框架图使用分层模式,分层的目的是为了解耦,降低代码的耦合度,有利于项目的维护和升级经典的JavaEE三层架构:项目具体分层(不同包)方案:分层对应包说明we
家具网购项目实现011.项目开发环境搭建创建一个web项目,添加需要的jar包(暂不使用Maven)依照5.1的表格来创建项目的大体分层:2.功能01-搭建前端页面2.1需求分析/图解2.2思路分析略2.3代码实现将前端人员给的静态页面拷贝到web目录下即可资源详见:https://github.com/liyuelian/furniture_mall.git配置Tomcat点击RebuildPproject,让项目能识别新拷贝的资源。启动Tomcat(启动过后一定要保证out目录下有拷贝进来的资源)2.4完成测试在浏览器访问项目首页http://localhost:8080/furnitur
家具网购项目实现011.项目开发环境搭建创建一个web项目,添加需要的jar包(暂不使用Maven)依照5.1的表格来创建项目的大体分层:2.功能01-搭建前端页面2.1需求分析/图解2.2思路分析略2.3代码实现将前端人员给的静态页面拷贝到web目录下即可资源详见:https://github.com/liyuelian/furniture_mall.git配置Tomcat点击RebuildPproject,让项目能识别新拷贝的资源。启动Tomcat(启动过后一定要保证out目录下有拷贝进来的资源)2.4完成测试在浏览器访问项目首页http://localhost:8080/furnitur
家居网购项目实现025.功能04-会员登录5.1需求分析/图解需求如图:输入用户名、密码后提交判断该用户是否存在如果存在,显示登录成功页面否则返回登录页面,要求重新登录要求改进登录密码为md5加密5.2思路分析5.3代码实现根据上述分析图,在对应的层添加方法5.3.1dao层修改MemberDAO接口,声明queryMemberByUsernameAndPassword()方法//提供一个通过用户名和密码返回对应的Member的方法publicMemberqueryMemberByUsernameAndPassword(Stringusername,Stringpassword);修改Memb
家居网购项目实现025.功能04-会员登录5.1需求分析/图解需求如图:输入用户名、密码后提交判断该用户是否存在如果存在,显示登录成功页面否则返回登录页面,要求重新登录要求改进登录密码为md5加密5.2思路分析5.3代码实现根据上述分析图,在对应的层添加方法5.3.1dao层修改MemberDAO接口,声明queryMemberByUsernameAndPassword()方法//提供一个通过用户名和密码返回对应的Member的方法publicMemberqueryMemberByUsernameAndPassword(Stringusername,Stringpassword);修改Memb
多用户即时通讯系统044.编码实现034.5功能实现-群聊功能实现4.5.1思路分析群聊的实现思路和私聊的实现非常类似。不同的是:私聊时,服务端接收到消息后,只需要找出接收方的socket并发送消息即可群聊时,服务端在接收到消息后需要遍历集合中所有的线程,找出除了发送方的所有客户端的socket,并发送消息群聊思路:客户端-发送者:用户在控制台输入信息,客户端接收内容将消息构建成Messgae对象,通过对应的socket发送给服务器服务器:读取客户端(发送者)发送给所有用户(接收者)的消息从管理线程的集合中,遍历所有线程,获取所有socket(除了发送者本身)将Message对象转发给所有的接
多用户即时通讯系统044.编码实现034.5功能实现-群聊功能实现4.5.1思路分析群聊的实现思路和私聊的实现非常类似。不同的是:私聊时,服务端接收到消息后,只需要找出接收方的socket并发送消息即可群聊时,服务端在接收到消息后需要遍历集合中所有的线程,找出除了发送方的所有客户端的socket,并发送消息群聊思路:客户端-发送者:用户在控制台输入信息,客户端接收内容将消息构建成Messgae对象,通过对应的socket发送给服务器服务器:读取客户端(发送者)发送给所有用户(接收者)的消息从管理线程的集合中,遍历所有线程,获取所有socket(除了发送者本身)将Message对象转发给所有的接
多用户即时通讯系统044.编码实现034.6功能实现-发送文件功能实现4.6.1思路分析客户端(发送者):先把文件a.jpg读取到客户端的字节数组把文件对应的字节数组封装到message对象[包含文件内容,发送者,接收者]将message对象发送到服务端服务端:接收到message对象拆解message对象的getteruid,获取接收者用户的通信线程,得到socket把message转发给指定用户客户端(接收者):在接收到包含有文件的message消息后,读取对应的文件字节数组,将该数组刷出到磁盘4.6.2代码实现1.客户端:1.修改MessageType接口在该接口中拓展消息类型Strin
多用户即时通讯系统044.编码实现034.6功能实现-发送文件功能实现4.6.1思路分析客户端(发送者):先把文件a.jpg读取到客户端的字节数组把文件对应的字节数组封装到message对象[包含文件内容,发送者,接收者]将message对象发送到服务端服务端:接收到message对象拆解message对象的getteruid,获取接收者用户的通信线程,得到socket把message转发给指定用户客户端(接收者):在接收到包含有文件的message消息后,读取对应的文件字节数组,将该数组刷出到磁盘4.6.2代码实现1.客户端:1.修改MessageType接口在该接口中拓展消息类型Strin
多用户即时通讯系统044.编码实现034.7功能实现-服务器推送消息功能实现4.7.1思路分析服务器推送新闻,本质其实就是群发消息在服务器启动一个独立线程,专门负责推送新闻该线程通过管理线程的集合,把所有的线程的socket拿到,并发送Messgae对象信息客户端通过接收,自然就拿到了新闻推送信息4.7.2代码实现只需要改动服务端即可1.创建Utility类该类与客户端的工具类一致,用于处理各种情况的输入packageqqserver.utlis;/***工具类的作用:*处理各种情况的用户输入,并且能够按照程序员的需求,得到用户的控制台输入。*/importjava.util.Scanner;