文章目录

  • 1用户注册界面
  • 2用户登录界面
  • 3用户个人中心界面
  • 4用户修改密码界面
  • 5用户模块开发
  • 5.1数据库表设计
  • 5.2用户注册模块开发
  • 5.3用户登录模块
  • 5.4用户个人中心模块
  • 5.5修改密码
  • 6总结
  • 7[在线演示地址](http://www.liph.fun/business-Admin/shop)
  • 8个人说明



电商网站用户必须登录账号才能发起购物,用户输入用户名和密码认证为唯一性,用户获取账号需要在网站中申请注册账号之后才能操作网站中的信息。
用户模块包含用户注册、用户登录、用户修改密码、用户个人中心信息查询

1用户注册界面

java电商开发遇到的难点有哪些 java电商项目有哪些模块_JAVA商城项目

2用户登录界面

java电商开发遇到的难点有哪些 java电商项目有哪些模块_java电商开发遇到的难点有哪些_02

3用户个人中心界面

java电商开发遇到的难点有哪些 java电商项目有哪些模块_spring boot微服务_03

4用户修改密码界面

java电商开发遇到的难点有哪些 java电商项目有哪些模块_java项目实战_04

5用户模块开发

5.1数据库表设计

java电商开发遇到的难点有哪些 java电商项目有哪些模块_ssm框架增删改查_05


表名:tb_member 商城会员表

字段

字段中文名

username

用户名

password

密码

nickname

用户昵称

phone

用户电话号码

status

用户状态

caeate_time

创建时间

5.2用户注册模块开发

  • 用户输入用户名和密码以及再次输入确认密码和手机号信息,调用用户注册接口,用户接口mybaties将用户信息插入tb_member数据库表中,从而完成用户注册功能。(ps这应该是大学老师里面天天讲的一个登陆注册讲了4年)
  • 关键代码分析
/***
 * 会员注册接口
 * 商城用户接口
 */
@RestController
@RequestMapping("api")
public class MemberController {

    @Autowired
    private MerberService merberService;

    /****
     * 校验用户是否存在
     */
    @RequestMapping("/vilidateUser")
    public CommonResult vilidateUser(String username){

        int result=merberService.vilideUser(username);
        if(result==0){
            return CommonResult.success(result);
        }else if(result==1){
            //code大于200业务失败。
            return CommonResult.failed(ResultCode.USEREXIT);
        }
       return null;
    }

    /***
     * 注册用户
     */
    @RequestMapping("/user/register")
    public CommonResult registerUser(TbMember member){
        int result=merberService.registerUser(member);
        if(result>0){
            return CommonResult.success(result);
        }
        return  CommonResult.failed();
    }

5.3用户登录模块

  • 用户输入用户名和密码,后台首先校验用户用户名是否不存在,不存在则直接提示不存在用户,如果用户存在进行对密码的一个加密,根据加密后的密码以及用户名查询数据库用户密码是否正确,如果正确则用户可以登录
  • 关键代码分析
/***
 * 会员注册接口
 * 商城用户接口
 */
@RestController
@RequestMapping("api")
public class MemberController {

    @Autowired
    private MerberService merberService;

    /****
     * 校验用户是否存在
     */
    @RequestMapping("/vilidateUser")
    public CommonResult vilidateUser(String username){

        int result=merberService.vilideUser(username);
        if(result==0){
            return CommonResult.success(result);
        }else if(result==1){
            //code大于200业务失败。
            return CommonResult.failed(ResultCode.USEREXIT);
        }
       return null;
    }

    /***
     * 注册用户
     */
    @RequestMapping("/user/register")
    public CommonResult registerUser(TbMember member){
        int result=merberService.registerUser(member);
        if(result>0){
            return CommonResult.success(result);
        }
        return  CommonResult.failed();
    }
    /***
     * 会员登录
     */
    @RequestMapping("/meberuser/login")
    public CommonResult<TbMember> loginUser(TbMember member, HttpServletRequest request, HttpServletResponse response){
     HttpSession session=   request.getSession();
     System.out.println("seesionID"+session.getId());
        TbMember tbMember=merberService.login(member);
        System.out.println(session);
        String uuid = UUID.randomUUID().toString();
        if(tbMember==null){
            return  CommonResult.failed(ResultCode.LOGINFAIL);
        }else{
            //登录成功将用户信息放入session中2019年1021号加入
            session.setAttribute(Constant.CURRENT_LOGIN_USER,tbMember);
            session.setAttribute("a","hello");
            //放入cokie
            CookieUtil.set(response,Constant.TOKEN,uuid,Constant.EXPIRE);
         return   CommonResult.success(tbMember);
        }
    }

5.4用户个人中心模块

  • 从session中获取用户信息然后将session中的用户信息获取出来进而返回用户个人信息页面
  • 关键代码分析
/***
 * 会员注册接口
 * 商城用户接口
 */
@RestController
@RequestMapping("api")
public class MemberController {

    @Autowired
    private MerberService merberService;

    /****
     * 校验用户是否存在
     */
    @RequestMapping("/vilidateUser")
    public CommonResult vilidateUser(String username){

        int result=merberService.vilideUser(username);
        if(result==0){
            return CommonResult.success(result);
        }else if(result==1){
            //code大于200业务失败。
            return CommonResult.failed(ResultCode.USEREXIT);
        }
       return null;
    }

    /***
     * 注册用户
     */
    @RequestMapping("/user/register")
    public CommonResult registerUser(TbMember member){
        int result=merberService.registerUser(member);
        if(result>0){
            return CommonResult.success(result);
        }
        return  CommonResult.failed();
    }
    /***
     * 会员登录
     */
    @RequestMapping("/meberuser/login")
    public CommonResult<TbMember> loginUser(TbMember member, HttpServletRequest request, HttpServletResponse response){
     HttpSession session=   request.getSession();
     System.out.println("seesionID"+session.getId());
        TbMember tbMember=merberService.login(member);
        System.out.println(session);
        String uuid = UUID.randomUUID().toString();
        if(tbMember==null){
            return  CommonResult.failed(ResultCode.LOGINFAIL);
        }else{
            //登录成功将用户信息放入session中2019年1021号加入
            session.setAttribute(Constant.CURRENT_LOGIN_USER,tbMember);
            session.setAttribute("a","hello");
            //放入cokie
            CookieUtil.set(response,Constant.TOKEN,uuid,Constant.EXPIRE);
         return   CommonResult.success(tbMember);
        }
    }
    @RequestMapping("/meberuser/logout")
    public CommonResult loginUser(HttpSession session){
            //登录成功将用户信息放入session中2019年1021号加入
            session.removeAttribute(Constant.CURRENT_LOGIN_USER);
            return   CommonResult.success(1);

    }
    @RequestMapping("/meberuser/getinfo")
    public CommonResult<TbMember> getinfo( HttpSession session){
        TbMember tbMember= (TbMember) session.getAttribute(Constant.CURRENT_LOGIN_USER);
        if(tbMember==null){
            //未登录返回0  啊
            return   CommonResult.failed(ResultCode.NOLOGIN);
        }
            return   CommonResult.success(tbMember);

    }

    /***
     * 获取用户信息
     * @param session
     * @return
     */
    @RequestMapping(value = "/meberuser/getinformation")
    public CommonResult<TbMember> get_information(HttpSession session){
        TbMember currentUser = (TbMember)session.getAttribute(Constant.CURRENT_LOGIN_USER);
        if(currentUser == null){
            return   CommonResult.failed(ResultCode.UNAUTHORIZED);
        }
        return CommonResult.success(merberService.getInformation(currentUser.getId()));
    }

5.5修改密码

  • 用户输入原密码和新密码,后台修改密码接口将用户新密码更新到登录用户的信息表中从而完成用户修改密码功能
  • 关键代码分析
/***
 * 会员注册接口
 * 商城用户接口
 */
@RestController
@RequestMapping("api")
public class MemberController {

    @Autowired
    private MerberService merberService;

    /****
     * 校验用户是否存在
     */
    @RequestMapping("/vilidateUser")
    public CommonResult vilidateUser(String username){

        int result=merberService.vilideUser(username);
        if(result==0){
            return CommonResult.success(result);
        }else if(result==1){
            //code大于200业务失败。
            return CommonResult.failed(ResultCode.USEREXIT);
        }
       return null;
    }

    /***
     * 注册用户
     */
    @RequestMapping("/user/register")
    public CommonResult registerUser(TbMember member){
        int result=merberService.registerUser(member);
        if(result>0){
            return CommonResult.success(result);
        }
        return  CommonResult.failed();
    }
    /***
     * 会员登录
     */
    @RequestMapping("/meberuser/login")
    public CommonResult<TbMember> loginUser(TbMember member, HttpServletRequest request, HttpServletResponse response){
     HttpSession session=   request.getSession();
     System.out.println("seesionID"+session.getId());
        TbMember tbMember=merberService.login(member);
        System.out.println(session);
        String uuid = UUID.randomUUID().toString();
        if(tbMember==null){
            return  CommonResult.failed(ResultCode.LOGINFAIL);
        }else{
            //登录成功将用户信息放入session中2019年1021号加入
            session.setAttribute(Constant.CURRENT_LOGIN_USER,tbMember);
            session.setAttribute("a","hello");
            //放入cokie
            CookieUtil.set(response,Constant.TOKEN,uuid,Constant.EXPIRE);
         return   CommonResult.success(tbMember);
        }
    }
    @RequestMapping("/meberuser/logout")
    public CommonResult loginUser(HttpSession session){
            //登录成功将用户信息放入session中2019年1021号加入
            session.removeAttribute(Constant.CURRENT_LOGIN_USER);
            return   CommonResult.success(1);

    }
    @RequestMapping("/meberuser/getinfo")
    public CommonResult<TbMember> getinfo( HttpSession session){
        TbMember tbMember= (TbMember) session.getAttribute(Constant.CURRENT_LOGIN_USER);
        if(tbMember==null){
            //未登录返回0  啊
            return   CommonResult.failed(ResultCode.NOLOGIN);
        }
            return   CommonResult.success(tbMember);

    }

    /***
     * 获取用户信息
     * @param session
     * @return
     */
    @RequestMapping(value = "/meberuser/getinformation")
    public CommonResult<TbMember> get_information(HttpSession session){
        TbMember currentUser = (TbMember)session.getAttribute(Constant.CURRENT_LOGIN_USER);
        if(currentUser == null){
            return   CommonResult.failed(ResultCode.UNAUTHORIZED);
        }
        return CommonResult.success(merberService.getInformation(currentUser.getId()));
    }

    /***
     *
     * @param session
     * @param passwordOld
     * @param passwordNew
     * @return
     */
    @RequestMapping(value = "/meberuser/updatepassword")
    public CommonResult<String> resetPassword(HttpSession session,String passwordOld,String passwordNew){
        TbMember user = (TbMember)session.getAttribute(Constant.CURRENT_LOGIN_USER);
        if(user == null){
            return CommonResult.failed(ResultCode.UNAUTHORIZED);
        }
        return CommonResult.success(merberService.resetPassword(passwordOld,passwordNew,user));
    }
}

6总结

用户模块,单纯的用户登录和注册相对来说比较简单,本系统由于使用前后端分离的情况,所以还是使用了session来存储用户的信息,利用了后台解决ajax跨域问题,用户信息存储在session中,方便判断用户是否属于登录状态。

7在线演示地址

8个人说明

经验是由一点一点积累的,思维也是由一天一天训练出来的。

9我的个人网站

持续更新分享此项目电商在线演示地址为:演示地址