如何实现注册一个用户

1.deliveryOrder-create.jsp(授权注册的jsp页面)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta name="renderer" content="webkit|ie-comp|ie-stand">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<link rel="Bookmark" href="/web10-7/H-ui_v2.2.1/favicon.ico" >
<link rel="Shortcut Icon" href="/web10-7/H-ui_v2.2.1/favicon.ico" />
<link rel="stylesheet" type="text/css" href="/web10-7/H-ui_v2.2.1/static/h-ui/css/H-ui.min.css" />
<link rel="stylesheet" type="text/css" href="/web10-7/H-ui_v2.2.1/static/h-ui.admin/css/H-ui.admin.css" />
<link rel="stylesheet" type="text/css" href="/web10-7/H-ui_v2.2.1/lib/Hui-iconfont/1.0.7/iconfont.css" />
<link rel="stylesheet" type="text/css" href="/web10-7/H-ui_v2.2.1/lib/icheck/icheck.css" />
<link rel="stylesheet" type="text/css" href="/web10-7/H-ui_v2.2.1/static/h-ui.admin/skin/default/skin.css" id="skin" />
<link rel="stylesheet" type="text/css" href="/web10-7/H-ui_v2.2.1/static/h-ui.admin/css/style.css" />
<title>注册</title>
</head>
<body οnlοad="load()">
<nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页 <span class="c-gray en">&gt;</span> 授权管理 <span class="c-gray en">&gt;</span> 注册一级经销商 <a class="btn btn-success radius r" style="line-height:1.6em;margin-top:3px" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a></nav>

<div class="container-fluid">
<div class="col-xs-4"></div>
<div class="col-xs-4">
<form class="ml-15" id="form-add" enctype="multipart/form-data">
<div class="mt-20">
<br>
</div>
<div class="mt-20">
<label for="AuthorizationCode"><span class="c-red">*</span>授权码:</label>
<div class="formControls">
<input type="text" class="input-text radius" name="AuthorizationCode" id="AuthorizationCode" readOnly="readOnly">
</div>
</div>
<div class="mt-20">
<label for="Distributor_level"><span class="c-red">*</span>经销商等级:</label>
<select class="select" size="1" name="Distributor_level" id="Distributor_level" disabled="disabled">
<option value="1" selected>一级经销商</option>
</select>
<input type="text" class="hidden" name="iDistributor_level" id="iDistributor_level" value="1">
</div>
<div class="mt-20">
<label for="Name"><span class="c-red">*</span>姓名:</label>
<div class="formControls">
<input type="text" class="input-text radius" name="Name" id="Name">
</div>
</div>
<div class="mt-20">
<label for="Id_card"><span class="c-red">*</span>身份证号码:</label>
<div class="formControls">
<input type="text" class="input-text radius" name="Id_card" id="Id_card">
</div>
</div>
<div class="mt-20">
<label for="Phone"><span class="c-red">*</span>手机号码:</label>
<div class="formControls">
<input type="text" class="input-text radius" name="Phone" id="Phone">
</div>
</div>
<div class="mt-20">
<label for="Wechat"><span class="c-red">*</span>微信:</label>
<div class="formControls">
<input type="text" class="input-text radius" name="Wechat" id="Wechat">
</div>
</div>
<div class="mt-20">
<label for="Address"><span class="c-red">*</span>地址:</label>
<div class="formControls">
<input type="text" class="input-text radius" name="Address" id="Address">
</div>
</div>
<div class="mt-20">
<label for="Email">邮箱:</label>
<div class="formControls">
<input type="text" class="input-text radius" name="Email" id="Email">
</div>
</div>
<div class="mt-20">
<label for="QQ">QQ:</label>
<div class="formControls">
<input type="text" class="input-text radius" name="QQ" id="QQ">
</div>
</div>
<div class="mt-20" id="uploader-demo">
<label for="img"><i style="color: red;">*</i> 本人证件合照:</label>
<input type="file" id="img" name="img" placeholder="请选择本人证件合照" required="required">
<h5>说明:图片需免冠,建议未化妆,手持证件人的五官清晰可见,照片不能大于3M,参考示例:</h5>
<img width="40%" src="/web10-7/images/hz.jpg" class="img-responsive">
</div>
<div class="mt-20">
<hr>
</div>
<div class="mt-20">
<label for="UserName"><span class="c-red">*</span>登陆账号:</label>
<div class="formControls">
<input type="text" class="input-text radius" name="UserName" id="UserName">
</div>
</div>
<div class="mt-20">
<label for="Password"><span class="c-red">*</span>密码:</label>
<div class="formControls">
<input type="password" class="input-text radius" name="Password" id="Password" placeholder="长度至少为6位">
</div>
</div>
<div class="mt-20">
<label for="CheckPassword"><span class="c-red">*</span>确认密码:</label>
<div class="formControls">
<input type="password" class="input-text radius" name="CheckPassword" id="CheckPassword" placeholder="长度至少为6位">
</div>
</div>
<div class="mt-20">
<input class="btn btn-primary radius" type="submit" value="&nbsp;&nbsp;提交&nbsp;&nbsp;">
</div>
<div class="mt-20">
</div>
</form>
</div>
<div class="col-xs-4"></div>
</div>

<!--_footer 作为公共模版分离出去-->
<script type="text/javascript" src="/web10-7/H-ui_v2.2.1/lib/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="/web10-7/H-ui_v2.2.1/static/h-ui/js/H-ui.js"></script>
<script type="text/javascript" src="/web10-7/H-ui_v2.2.1/lib/layer/2.1/layer.js"></script>
<script type="text/javascript" src="/web10-7/H-ui_v2.2.1/lib/icheck/jquery.icheck.min.js"></script>
<script type="text/javascript" src="/web10-7/H-ui_v2.2.1/static/h-ui.admin/js/H-ui.admin.js"></script>
<script type="text/javascript" src="/web10-7/H-ui_v2.2.1/lib/jquery.validation/1.14.0/jquery.validate.min.js"></script>
<script type="text/javascript" src="/web10-7/H-ui_v2.2.1/lib/jquery.validation/1.14.0/validate-methods.js"></script>
<script type="text/javascript" src="/web10-7/H-ui_v2.2.1/lib/jquery.validation/1.14.0/messages_zh.min.js"></script>
<!--/_footer /作为公共模版分离出去-->

<!--请在下方写此页面业务相关的脚本-->

2.脚本:获得授权码
<script type="text/javascript">

function load(){
$.ajax({
'url' : '/web10-7/authorizationCode/getAuthorizationCode', //先执行
'type' : 'post',
'dataType' : 'json',
'success' : function(data, statusText) {
$('#AuthorizationCode').val(data.msg);
},
'error' : function(xhr, e1, e2) {
alert(e1,e2);
layer.msg("系统错误!");
}
});
}
3.表现层:生成16进制授权码
package firmye.action;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import firmye.pojo.CallbackResult;
import firmye.utils.EncodeUtil;
import firmye.utils.UUIDUtil;

@Controller
@RequestMapping("/authorizationCode")
public class AuthorizationCodeAction {

/**
* @author Firmye
* @date 2016年10月23日 下午9:13:14
*
* 获取授权码
*/
@ResponseBody
@RequestMapping("/getAuthorizationCode")
public CallbackResult getAuthorizationCode(){
//使用uuid工具类获得code
String code = UUIDUtil.getInstance().getUUID();
//单例16进制转码code
code = EncodeUtil.getInstance().encode_16(code);
//返回一个授权码
return new CallbackResult(true,code);
}
}
UUIDUtil.java:生成UUID
package firmye.utils;

import java.util.UUID;

public class UUIDUtil {
private static UUIDUtil uuidUtil = null;
public static UUIDUtil getInstance(){
if(uuidUtil == null)
uuidUtil = new UUIDUtil();
return uuidUtil;
}
public String getUUID(){
return UUID.randomUUID().toString();
}

public static void main(String[] args) {
for(int i = 0;i<2;i++)
System.out.println(UUIDUtil.getInstance().getUUID());
}
}
EncodeUtil.java生成Encode
package firmye.utils;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class EncodeUtil {
private static EncodeUtil encodeUtil = null;

public static EncodeUtil getInstance() {
if (encodeUtil == null)
encodeUtil = new EncodeUtil();
return encodeUtil;
}

//加密成32位
public String encode(String str) {
try {
// 拿到一个MD5转换器(如果想要SHA1参数换成”SHA1”)
MessageDigest messageDigest = MessageDigest.getInstance("MD5");
// 输入的字符串转换成字节数组
byte[] inputByteArray = str.getBytes();
// inputByteArray是输入字符串转换得到的字节数组
messageDigest.update(inputByteArray);
// 转换并返回结果,也是字节数组,包含16个元素
byte[] resultByteArray = messageDigest.digest();
// 字符数组转换成字符串返回
return byteArrayToString(resultByteArray);
} catch (NoSuchAlgorithmException e) {
return null;
}
}
//加密成16位
public String encode_16(String str) {
return encode(str).substring(8, 24);
}

public String byteArrayToString(byte[] byteArray) {
// 首先初始化一个字符数组,用来存放每个16进制字符
char[] hexDigits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
// new一个字符数组,这个就是用来组成结果字符串的(解释一下:一个byte是八位二进制,也就是2位十六进制字符(2的8次方等于16的2次方))
char[] resultCharArray = new char[byteArray.length * 2];
// 遍历字节数组,通过位运算(位运算效率高),转换成字符放到字符数组中去
int index = 0;
for (byte b : byteArray) {
resultCharArray[index++] = hexDigits[b >>> 4 & 0xf];
resultCharArray[index++] = hexDigits[b & 0xf];
}
// 字符数组组合成字符串返回
return new String(resultCharArray);
}
public static void main(String[] args) throws NoSuchAlgorithmException, UnsupportedEncodingException {
String str = "adminadm";
System.out.println(EncodeUtil.getInstance().encode(str));
System.out.println(EncodeUtil.getInstance().encode_16(str));
}
}

脚本:jquery设置授权码的value值
function load(){
$.ajax({
'url' : '/web10-7/authorizationCode/getAuthorizationCode',
'type' : 'post',//提交post请求可以获得数据
'dataType' : 'json',//数据格式是json
'success' : function(data, statusText) {
//data是数据请求的返回对象,把授权码的值设置为msg
$('#AuthorizationCode').val(data.msg); //最后执行
},
'error' : function(xhr, e1, e2) {
alert(e1,e2);
layer.msg("系统错误!");
}
});
}
思路:获得授权码的思路是:
表单->
脚本->
url->
action->
util->
$('#AuthorizationCode').val(data.msg);

4.validate:表单验证
//validate表单验证
$("#form-add").validate({
rules:{
Name:{
required:true,
},
Id_card:{
required:true,
},
Phone:{
required:true,
},
Wechat:{
required:true,
},
Address:{
required:true,
},
UserName:{
required:true,
remote:{
url:"/web10-7/user/checkUser",
type:"post",
data:{//返回给后台的数据,组参
UserName:function(){
return $("#UserName").val();
}
}
}
},

Password:{
required:true,
minlength:6,
},
CheckPassword:{
required:true,
equalTo:"#Password",
minlength:6,
}
},
messages:{
Name:{
required:"请输入姓名",
},
Id_card:{
required:"请输入身份证号码",
},
Phone:{
required:"请输入手机号码",
},
Wechat:{
required:"请输入微信",
},
Address:{
required:"请输入地址",
},
UserName:{
required:"请输入登陆账号",
remote:"该账号已存在",
},
Password:{
required:"请输入密码",
minlength:"长度至少为6位",
},
CheckPassword:{
required:"请确认密码",
equalTo:"两次密码不一致",
minlength:"长度至少为6位",
}
},
onkeyup:false,
focusCleanup:true,
success:"valid",
submitHandler:function(form){
formSubmit();
}
});
5.UserAction检查用户名是否已存在
/**
* @author Firmye
* @date 2016年10月20日 下午3:48:58
*
* 检验用户名唯一
*/
@ResponseBody
@RequestMapping("/checkUser")
public Boolean checkUser(HttpServletRequest request){
String name = request.getParameter("UserName");
User user = userService.checkName(name);
if(user!=null)
return false;
return true;
}


6.表单异步提交
function formSubmit(){
var formData = new FormData($('#form-add')[0]);
$.ajax({
'url' : '/web10-7/distributor/addDistributor',
'type' : 'post',
'data': formData,
'dataType' : 'json',
'async': false,
'cache':false,
'processData': false, // 告诉jQuery不要去处理发送的数据
'contentType': false, // 告诉jQuery不要去设置Content-Type请求头
'success': function(data,statusText) {
if(data.status){
layer.msg("注册成功!");
}else{
layer.msg("注册失败!");
}
},
'error':function(xhr,e2,e2){
layer.msg("系统错误");
}
});
return false;
}

</script>
</body>
</html>
7.DistributorAction.java
@ResponseBody
@RequestMapping("/addDistributor")
public CallbackResult addDistributor(HttpSession session,HttpServletRequest request,MultipartFile img) throws IOException, ServletException{
CallbackResult callbackResult = new CallbackResult();
User user = (User) session.getAttribute("user");
String Authorization_Code = request.getParameter("AuthorizationCode");
String Distributor_level = request.getParameter("iDistributor_level");
String Name = request.getParameter("Name");
String Id_card = request.getParameter("Id_card");
String Phone = request.getParameter("Phone");
String Wechat = request.getParameter("Wechat");
String Address = request.getParameter("Address");
String Email = request.getParameter("Email");
String QQ = request.getParameter("QQ");
String UserName = request.getParameter("UserName");
String Password = request.getParameter("Password");
Password += Password.substring(0, 3);
Password = EncodeUtil.getInstance().encode(Password);
//生成UUID
String id = UUIDUtil.getInstance().getUUID();
//得到图片路径
String Id_photo = request.getSession().getServletContext().getRealPath("/")+ "images\\idphoto\\" + img.getOriginalFilename();
//图片转换
img.transferTo(new File(Id_photo));
AuthorizationCode authorizationCode = new AuthorizationCode();
authorizationCode.setAuthorization_code(Authorization_Code);
authorizationCode.setCreate_by(user.getId());
authorizationCode.setDistributor_id(id);
authorizationCode.setCreate_time(GetTimeUtil.getInstance().getNow());
authorizationCode.setDistributor_level(Distributor_level);
authorizationCode.setStatus(1);
if(authorizationCodeService.add(authorizationCode)){
User newUser = new User();
newUser.setId(id);
newUser.setName(UserName);
newUser.setPassword(Password);
newUser.setStatus(1);
newUser.setCreate_date(GetTimeUtil.getInstance().getNow());
newUser.setCreate_by(user.getName());
if(userService.add(newUser)){
Distributor distributor = new Distributor();
distributor.setId(id);
distributor.setReal_name(Name);
distributor.setPhone(Phone);
distributor.setEmail(Email);
distributor.setWechat(Wechat);
distributor.setQq(QQ);
distributor.setId_card(Id_card);
distributor.setId_photo(Id_photo);
distributor.setAddress(Address);
distributor.setLevel(Distributor_level);
distributor.setAuthorization_code(Authorization_Code);
distributor.setStatus(1);
if(distributorService.add(distributor)){
if(userRoleService.add(new UserRole(id,"15c0caf9-ba89-4244-a6e7-fed69c17388a"))){
callbackResult.setStatus(true);
}else{
callbackResult.setStatus(false);
}
}else{
callbackResult.setStatus(false);
}
}else{
callbackResult.setStatus(false);
}
}else{
callbackResult.setStatus(false);
}
return callbackResult;
}


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值