java用户注册模块_关于java:用户模块的实现注册退出

用户注册

url剖析

依据url地址阐明申请为同域申请:

参数信息:

页面JS剖析

阐明:依据剖析获取返回值数据信息应该为SysResult对象。

编辑UserCotroller

/**

* 需要:实现用户信息注册

* url:http://www.jt.com/user/doRegister

* 参数:password: admin123 username: adming2222 phone: 13111111111

* 3,返回值后果 SysResult对象

*/

@RequestMapping("/doRegister")

@ResponseBody //将数据转化为json

public SysResult saveUser(User user){

//消费者基于dubbo协定将user对象进行近程网络数据传输

userService.saveUser(user);

return SysResult.success();

}

编辑UserService

/**

* 注意事项:

* 1.临时应用电话号码代替邮箱

* 2.明码进行md5加密.

* 3.入库操作留神事务管制

* @param user

*/

@Override

public void saveUser(User user) {

String md5Pass =

DigestUtils.md5DigestAsHex(user.getPassword().getBytes());

user.setEmail(user.getPhone())

.setPassword(md5Pass);

userMapper.insert(user);

}

页面成果展现

用户信息回显

页面url剖析

查看页面JS

编辑SSO的Controller

/**

* 业务实现

* 1.用户通过cookie信息查问用户数据, 通过ticket获取redis中的业务数据

* 2.url申请门路:"http://sso.jt.com/user/query/" + _ticket,

* 3.参数:参数在url中,利用restFul获取

* 4.返回值后果:SysResult对象(userJSON)

*/

@RequestMapping("/query/{ticket}")

public JSONPObject findUserByTicket(@PathVariable String ticket,

HttpServletResponse response,

String callback){

String userJson = jedisCluster.get(ticket);

//cookie信息可能呈现的问题:

//1.lru算法,可能会清空cookie中的数据

//2.有可能cookie信息有误

if(StringUtils.isEmpty(userJson)){

/* //如果判断cookie为空,则应该删除cookie信息

Cookie cookie=new Cookie("JT_TICKET", ""); //设置一个超时工夫

cookie.setMaxAge(0); //设置域名

cookie.setDomain("jt.com"); //设置门路

cookie.setPath("/"); //用response删除cookie信息

response.addCookie(cookie); //因为是JSONP格局,所以返回也应该是JSONP格局,而且参数要返回callback*/

//利用cookie工具API

CookieUtil.deleteCookie(response, "JT_TICKET", "jt.com");

return new JSONPObject(callback,SysResult.fail());

}else{

//如果正确则间接返回胜利,并将ticket返回

return new JSONPObject(callback, SysResult.success(userJson));

}

}

}

编辑Cookie工具API

package com.jt.util;

import javax.servlet.http.Cookie;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

//cookie的工具API

public class CookieUtil {

//新增cookie

public static void addCookie(HttpServletResponse response,

String cookieName,

String cookieValue,

int seconds,

String domain ){

Cookie cookie=new Cookie(cookieName, cookieValue);

cookie.setMaxAge(seconds);

cookie.setDomain(domain);

cookie.setPath("/");

response.addCookie(cookie);

}

//依据name查问value的值

public static String getCookieValue(HttpServletRequest request,String cookieName){

//创立一个cookie数组

Cookie[] cookies = request.getCookies();

//判断cookies是否为空,外面是否有值

if(cookies!=null && cookies.length>0){

for(Cookie cookie:cookies){

//判断cookie中的信息是否统一

if(cookieName.equals(cookie.getName())){

//如果统一则返回value的值

return cookie.getValue();

}

}

}

//如果名字信息不统一则间接返回null

return null;

}

//删除cookie(调用addCookie办法)

public static void deleteCookie(HttpServletResponse response,

String cookieName,String domain){

addCookie(response, cookieName, "", 0, domain);

}

}

用户退出操作

业务阐明

如果用户点击退出,首先应该删除Redis中的数据,其次删除cookie中的数据,最初重定向到零碎首页。

URL剖析

编辑UserController

/**

* 实现用户的退出操作,重定向到零碎首页

* url:http://www.jt.com/user/logout.html

* 业务:

* 1.删除redis中的数据

* 2.删除cookie中的信息

*/

@RequestMapping("logout")

public String logout(HttpServletRequest request,HttpServletResponse response){

//依据JT_TICKET获取ticket的值

String ticket = CookieUtil.getCookieValue(request, "JT_TICKET");

//判断ticket值是否为空

//如果不为空【!StringUtils.isEmpty(ticket)】,则删除cookie外面的信息和redis中的数据,而后返回零碎首页

//如果为空则不执行上面的代码,间接返回零碎首页

if(!StringUtils.isEmpty(ticket)){

jedisCluster.del(ticket);

CookieUtil.deleteCookie(response,"JT_TICKET","jt.com");

}

//重定向到零碎首页(redirect)

return "redirect:/";

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值