一、用户登录
前台:
登录按钮的点击事件
验证数据,如果验证通过,发送ajax请求做登录操作
1、得到用户名称和密码
2、判断用户名称和密码,为空显示提示信息
3、发送ajax请求
$.ajax({
url:"请求的路径user",
type:"请求方式post",
data:{用户名、用户密码、用户行为action、是否记住密码},
success:function(result){
// result相当于后台的一个封装对象 (状态码code、提示信息msg、返回的对象result)
判断code是否等于1,成功
跳转到首页
如果失败,显示提示信息
}
});
后台:
整体思路:
1、接收参数
2、判断参数
如果参数为空,将错误码及提示信息响应给ajax的回调函数,return
3、通过用户名查询用户对象是否存在
数据库查询操作,返回user对象
4、判断user对象是否为空
如果为空,将错误码及提示信息响应给ajax的回调函数,return
5、判断前台传过来的密码是否和数据库查询的密码一致
将前台传过来的密码先加密,再与数据库比较 (加密工具类)
如果不相等,将错误码及提示信息响应给ajax的回调函数,return
6、登录成功
将用户信息存到session作用域中
判断是否记住密码,如果是,存cookie对象
响应成功状态码给ajax的回调函数
Dao层:(数据库操作)
通过用户名查询用户对象是否存在
1、得到数据库连接
2、写sql语句 String sql = "select * from user where uname = ?";
3、预编译
4、设置参数,下标从1开始
5、执行查询,返回结果集
6、分析结果集,得到user对象
7、关闭资源
8、返回user对象
Service层:(业务逻辑处理)
1、判断参数 (返回的封装类ResultInfo code状态码 0=失败,1=成功、msg提示信息、result返回的数据 泛型)
如果参数为空,code=0,msg=用户名/密码不能为空,返回ResultInfo对象
2、调用Dao层的查询方法,得到user对象
3、判断user对象是否为空
如果为空,code=0,msg=用户不存在,返回ResultInfo对象
4、判断前台传过来的密码是否和数据库查询的密码一致
将前台传过来的密码先加密,再与数据库比较 (加密工具类)
如果为空,code=0,msg=用户密码不正确,返回ResultInfo对象
5、code=1,msg=登录成功,返回ResultInfo对象
Servlet层:
1、接收参数
2、调用Service层,返回ResultInfo对象
3、判断code是否为1,登录成功
将用户信息存到session作用域中
判断是否记住密码,如果是,存cookie
4、将ResultInfo对象转换成JSON字符串,响应给ajax的回调函数
二、退出登录
1、销毁session
2、删除cookie
3、跳转到登录页面
三、非法页面拦截、自动登录
当用户在未登录的状态时,访问一些必须要先登录才能查看的页面
什么时候该放行
1、指定资源 放行 (静态资源 html、js、css、images)
2、指定页面 放行 (登录页面login.jsp、注册页面register.jsp)
3、指定行为 放行 (登录操作login、自动登录操作aotuLogin)
4、登录状态 放行 (session作用域中的user对象不为空)
5、判断指定的cookie对象是否为空(自动登录)
如果不为空,得到用户名和密码,请求转发到servlet层,调用登录操作
拦截之后做什么
跳转到登录页面
注:
后台:
登录或者自动登录之后,不应该直接跳转到index.jsp。需要跳转到indexServlet,并在servlet中设置中间的动态页面的值,再请求转发到index.jsp
前台:
动态包含时,用el表达式从request作用域中获取动态包含的页面。获取前需要用JSTL标签库判断动态页面值是否为空(需要JSTL的jar包和导入对应的标签库)
四、进入用户中心
前台:超链接指向后台的servlet并设置指定行为 user?action=userCenter
后台:
1、设置动态页面值到request作用域中
2、请求转发跳转到index.jsp
五、显示用户信息
前台用el表达式直接从session作用域中获取user对象的属性
六、加载头像
前台:
<img>标签的src属性指向后台的servlet。 user?action=userHead&imageName=作用域中的值
后台:
1、接收参数(头像名称)
2、判断是否为空
3、得到文件存放在服务器的真实路径 request.getServletContext().getRealPath("/WEB-INF/upload/" + 头像名称);
4、通过路径得到file对象
5、判断file对象是否存在,并且是一个标准文件
6、截取图片名称,得到图片后缀
7、根据不同的后缀,设置对象的响应MIME类型
8、利用commons-io的jar包,拷贝file对象 FileUtils.copyFile(file,response.getOutputStream());
七、验证昵称的唯一性
前台:
昵称文本框失去焦点事件
1、得到昵称文本框的值
2、判断昵称是否为空
为空,提示信息
3、发送ajax请求,验证昵称的唯一性
url:userServlet
参数:action:checkNick、昵称
回调函数:resultInfo
code = 0, msg=xxxx,禁用提交按钮
昵称文本框聚焦事件
1、清空提示信息
2、让点击可点击
后台:
整体思路:
1、从session作用域中获取用户对象,得到用户ID
2、接收参数 昵称
3、判断昵称是否为空
为空,code=0,msg=昵称不能为空,返回resultInfo对象
4、通过昵称和用户ID查询数据库是否存在记录 (查询id不是当前修改用户自己的昵称)
5、判断数据是否存在
存在不可使用
不存在可使用
6、将resultInfo对象转换成SON字符串,响应给ajax的回调函数
Servlet层:
1、从session作用域中获取用户对象,得到用户ID
2、接收参数
3、调用Service层,返回resultInfo对象
4、将resultInfo对象转换成SON字符串,响应给ajax的回调函数
Service层:
1、判断昵称是否为空
为空,code=0,msg=昵称不能为空,返回resultInfo对象
2、调用Dao层,查询昵称是否被其他用户占用,返回user对象
3、如果user对象存在
code=0,msg=昵称不可使用,返回resultInfo对象
4、code=1,msg=昵称可用
Dao层:
查询昵称是否被其他用户占用(过滤当前登录用户ID)
数据库操作:
1、得到数据库连接
2、写sql语句 String sql = "select * from tb_user where nick = ? and userId != ?";
3、预编译
4、设置参数
5、执行查询,返回结果集
6、分析结果集,得到user对象
7、关闭资源
8、返回user对象
八、修改用户
前台:
表单提交
设置enctype="multipart/form-data",method="post",设置表单元素的name属性值
表单验证
验证昵称的唯一性
提交表单
后台:
设置文件上传的注解 @MultipartConfig(如果没有注解表单元素,全部为null)
1、从session作用域中获取用户对象,得到userId
2、接收参数(昵称、心情)
3、判断参数是否为空(昵称)
4、验证昵称的唯一性
5、文件上传
1、得到part对象 Part part = request.getPart("img"); // getPart(name):前台file表单元素的name属性值
2、得到文件存放的路径 path = request.getServletContext().getRealPath("/WEB-INF/upload/");
3、得到上传文件的名称 fileName = part.getSubmitedFiledName()
4、上传文件到指定路径 part.write(path + fileN
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
资源中我打包了一切能用到文件,包含了开发的思路,开发流程的Xmind总结文档,还有项目用到的mysql数据库,及项目源码,运行界面图.该项目用java开发,用到mysql数据库.百度的富文本编辑器,jQuery等各种热门的技术,能与时代接轨,是一个很不错的java-web项目.能直接运行,基本上每个功能模块都有开发思路记录着,用户能随心随意的发表自己的博客,笔记,或随记.操作简单,界面优美.
资源推荐
资源详情
资源评论






























收起资源包目录





































































































共 413 条
- 1
- 2
- 3
- 4
- 5
资源评论


萌萌的PP
- 粉丝: 28
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 医院网络与信息安全应急预案.doc
- 2005年9月全国计算机等级考试三级网络技术笔试真题88498.doc
- 互联网+时代高等学校混合式教学创新探索.docx
- 优必选曼城战略合作发布会互联网IT计算机专业资料.ppt
- 工程量算法技术文件.doc
- 基于改进MPPT算法的光伏发电系统设计.docx
- 浅析变电站电力系统自动化智能控制技术.docx
- 基于Web的远程温湿度监测系统的方案设计书(2).doc
- 某医院计算机网络综合布线系统设计.docx
- 网络化行车组织需求.docx
- 地铁列车运行仿真算法研究.docx
- 小型企业网络工程方案设计书实施方案书.doc
- 谈服务器虚拟化技术在主机运维中的运用.docx
- 对职业高中计算机基础教学实践探索.docx
- 新形势下机械设计制造及其自动化发展微探.docx
- Python-Python资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
