<p>&lt;%@ page language=&quot;java&quot; contentType=&quot;text/html; charset=utf-8&quot;
pageEncoding=&quot;utf-8&quot;%&gt;</p>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>用户注册</title>
<pre><code>	&lt;!--全局JS--&gt;
	&lt;script src=&quot;/js/jquery-2.1.4.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
	&lt;script src=&quot;/js/bootstrap.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
	&lt;script src=&quot;/js/bootstrap-dialog.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
	&lt;script src=&quot;/js/bootstrapValidator.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;

	&lt;!--全局CSS--&gt;
	&lt;link href=&quot;/css/bootstrap.min.css&quot; rel=&quot;stylesheet&quot;&gt;
	&lt;link href=&quot;/css/bootstrap-dialog.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
	&lt;link href=&quot;/css/bootstrapValidator.min.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
	&lt;link href=&quot;/css/register.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
	&lt;!--插件CSS--&gt;
	&lt;link href=&quot;/static/plugins/bootstrap_login/css/style.css&quot; rel=&quot;stylesheet&quot; media=&quot;screen&quot;&gt;
	&lt;link href=&quot;/static/plugins/bootstrap_login/css/reset.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
	&lt;!-- 全局CSS --&gt;
	&lt;link href=&quot;/static/plugins/bootstrap_cms/css/bootstrap.min.css&quot; rel=&quot;stylesheet&quot;&gt;
	&lt;link href=&quot;/static/plugins/bootstrap_cms/css/font-awesome.min.css?v=4.4.0&quot; rel=&quot;stylesheet&quot;&gt;
	&lt;link href=&quot;/static/plugins/bootstrap_cms/css/animate.css&quot; rel=&quot;stylesheet&quot;&gt;
	&lt;link href=&quot;/static/plugins/bootstrap_cms/css/style.css?v=4.1.0&quot; rel=&quot;stylesheet&quot;&gt;
	&lt;!-- 对等js --&gt;
	&lt;script src=&quot;${pageContext.request.contextPath}/static/js/index/register.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;

&lt;/head&gt;
</code></pre>
<body style="background: #D6E4FF;">
	<div class="dataEye">
		<div class="loginbox registbox">
			<div class="login-content reg-content">
			<div class="loginbox-title">
				<h3>注册</h3>
			</div>
			<form id="form" <%--method="post" action="${pageContext.request.contextPath }/user/register1"--%>>
					<div class="form-group" style="padding-left: 20px;">
	       		        <input  placeholder="用户昵称" class="form-control" 
	       		        		id="nickName" name="nickName" style="width: 300px;" />
		            </div>
		            <div class="form-group" style="padding-left: 20px;">
		                <input placeholder="邮箱地址" type="text" class="form-control" 
		                	id="email" name="email" style="width: 300px;" />
		            </div>
		            <div class="form-group" style="padding-left: 20px;">
		                <input placeholder="密码" type="password" class="form-control" 
		                	id="password" name="password1" style="width: 300px;" />
		            </div>
		            <div class="form-group" style="padding-left: 20px;">
		                <input placeholder="确认密码" type="password" class="form-control"
		                	id="passwordACK" name="passwordACK" style="width: 300px;" />
		            </div>
		            <div class="row tips form-group">
					<input type="checkbox" name="checkBox" id="checkBox">
					<label>
					我已阅读并同意
					<a href="#" target="_blank">隐私政策、服务条款</a>
					</label>
				</div>
		            <div class="form-group" style="padding-left: 40px;line-height:80px;">
		                <button type="submit" name="submit" class="btn btn-primary" style="width: 300px;">注册</button>
		            </div>
	    		</form>
	    		</div>
	    		<div class="go-regist">
					已有帐号,请<a href="${pageContext.request.contextPath}/login.jsp" class="link">登录</a>
			</div>
		</div>
	</div>
</body>
	<script type="text/javascript">
	</script>
</html>
<p>//初始化参数
var nickName;
var email;
var password1;
var ctx=&quot;http://localhost:6060/&quot;;</p>
<p>$(function () {
//注册选项验证
formValidator();
console.log(&quot;register&quot;);
});</p>
<p>//参数值收集
function collectParams(){
nickName = $(&quot;#nickName&quot;).val();
email = $(&quot;#email&quot;).val();
password = $(&quot;#password1&quot;).val();
}</p>
<p>//注册选项验证
function formValidator(){
$(&quot;#form&quot;).bootstrapValidator({
message: 'This value is not valid',
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
nickName: {
message: '用户名验证失败',
validators: {
notEmpty: {
message: '用户名不能为空'
},
stringLength: {
min: 3,
max: 18,
message: '用户名长度必须在3到18位之间'
}
}
},
email: {
validators: {
notEmpty: {
message: '邮箱不能为空'
},
emailAddress: {
message: '邮箱地址格式有误'
},
//ajax后端校验
remote: { // 需求一个json数据({'valid': true or false})
url: ctx+'/user/checkOne.do',      //验证地址
message: '该用户已存在',   //提示信息
delay: 2000,//ajax刷新的时间是2秒一次,这个值过小会对服务器造成压力
type: 'POST',          //请求方式
data: function(validator){  //自定义提交数据,默认为当前input name值
return {
act: 'is_registered',
email: $(&quot;input[name='email']&quot;).val()
};
}
}
}
},
//一次密码不能为空,并符合复杂度
password: {
validators: {
notEmpty: {
message: '密码不能为空'
},
regexp : {
regexp : /^(?:(?=.<em>[A-Z])(?=.</em>[a-z])(?=.<em>[0-9])|(?=.</em>[A-Z])(?=.<em>[a-z])(?=.</em>[^A-Za-z0-9])|(?=.<em>[A-Z])(?=.</em>[0-9])(?=.<em>[^A-Za-z0-9])|(?=.</em>[a-z])(?=.<em>[0-9])(?=.</em>[^A-Za-z0-9])).{6,16}$/,
message : '用户新密码长度为6至16位,并且需要包含数字、小写字母、大写字母、符号(至少三种)'
}
}
},
//二次密码不能为空,和一次密码保持一致
passwordACK: {
validators: {
notEmpty: {
message: '密码不能为空'
},
regexp : {
regexp : /^(?:(?=.<em>[A-Z])(?=.</em>[a-z])(?=.<em>[0-9])|(?=.</em>[A-Z])(?=.<em>[a-z])(?=.</em>[^A-Za-z0-9])|(?=.<em>[A-Z])(?=.</em>[0-9])(?=.<em>[^A-Za-z0-9])|(?=.</em>[a-z])(?=.<em>[0-9])(?=.</em>[^A-Za-z0-9])).{6,16}$/,
message : '用户新密码长度为6至16位,并且需要包含数字、小写字母、大写字母、符号(至少三种)'
},
identical: {  //比较是否相同
field: 'password1',  //需要进行比较的input name值
message: '两次密码不一致'
},
}
},
checkBox: {
validators: {
notEmpty: {
message: '请同意用户注册须知'
},
//前端JS校验
callback: {
callback: function (value, validator){
if(value == &quot;on&quot;){
return true;
}
else{
return false;
}
}
}
}
}
}
}).on('success.form.bv',function(){
console.log(&quot;register success!&quot;);
//参数收集
collectParams();
//发送Ajax
$.ajax({
url: ctx+&quot;/user/register.do&quot;,
type:&quot;POST&quot;,
data:{&quot;nickName&quot;:nickName,&quot;email&quot;:email,&quot;password1&quot;:password1},
success:function(data){
if(data == true){
//模态框
BootstrapDialog.show({
title: '',
closable: false,//是否显示关闭图表 X
message: '注册成功!',
//添加按钮动作
buttons: [{
label: '确定',//按钮名称
action: function(dialog) {
//注册成功,跳转到登录界面
window.location.href=ctx+&quot;/static/page/index/login.jsp&quot;;
}
}]</p>
<pre><code>				});
			}
		},
		dataType:&quot;json&quot;
	});

});
</code></pre>
<p>}
//注册json逻辑
@RequestMapping(&quot;/user/checkOne.do&quot;)
@ResponseBody
public Map&lt;String, Boolean&gt; checkUserRegistered(String email,HttpServletResponse response, HttpSession session, HttpServletRequest request) {
boolean isRegistered = adminService.JDBCSelectEmail2(email);
Map&lt;String, Boolean&gt; result = new HashMap&lt;&gt;();
result.put(&quot;valid&quot;, !isRegistered);
return result;
}
//注册ajax
@RequestMapping( &quot;/user/register.do&quot;)
@ResponseBody
public void registerAjax(String email, String password1, String nickName, HttpServletResponse response, HttpSession session, HttpServletRequest request) throws IOException {
System.out.println(&quot;this is registerAjax&quot;);
/* List<admin> list = adminService.JDBCselectEmail(email,password1);
boolean result=false;
if(list.size()&gt;0){
session.setAttribute(&quot;nickname&quot;,list.get(1));
result=true;
}
String jsonString = JSON.toJSONString(result);
response.getWriter().write(jsonString);*/
//生成4位盐值
String salt = GeneralUtil.generateCode();
//盐值+密码
String codepass = salt + password1;
String md5Digest = MD5.getMD5Digest(codepass);
admin admin = new admin();
admin.setAdmin_email(email);admin.setAdmin_nickname(nickName);admin.setAdmin_password(md5Digest);
//添加盐值
admin.setAdmin_salt(salt);
boolean bl = admin.insert();
boolean result=false;
if (bl == true){
result=true;
}
String jsonString = JSON.toJSONString(result);
response.getWriter().write(jsonString);
}
2023-04-05 03:46:26,128 [WARN] [HikariPool-1 housekeeper] com.zaxxer.hikari.pool.HikariPool [HikariPool.java : 758] HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=55s228ms149µs700ns).</p>
用户注册 - 快速安全注册账号

原文地址: https://www.cveoy.top/t/topic/m2vh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录