猿问

ssm框架中jsp页面使用jquery的$.ajax验证登录注册,注册验证已实现,同理去验证登录却问题不断,系统崩溃

注册验证是可以正常进入服务器并于controller中的checkRegister交互的,并且控制台能输出sql语句。但是登录却不行,检查很多遍没发现写错什么,但是并没有进入到checkLogin方法,连方法内部的systemout一个都没输出来。最让我不解的是,用谷歌和ie浏览器时,不进对应的方法不说,内存占用逐渐上升飙红了,网页关掉就恢复正常。而这些问题,注册页面统统没有。。我查来查去真不知道是什么原因了,请各位大神帮忙指点分析一下。下面贴上源码

登录的JS:

<script type="text/javascript" src="<%=path %>/statics/js/jquery.js"></script>
    <script type="text/javascript">
    	$(document).ready(function(){
    		$("input").blur(function(){
    			var ele=$(this);
    			var getValue=ele.val();//获取创建用户时输入的文本信息
    			if($(this).is("#cardId")){
    				var reg=/^\d{18,18}$/;
    				if(reg.test(getValue)==false){
    				flag=false;
    				ele.attr("style","color:red;border:1px solid red;");
    				ele.next().attr("style","color:red;").html("&nbsp;&nbsp;账号输入有误!");	
    				}else{
					ele.attr("style","color:green;border:1px solid green");
					ele.next().attr("style","color:green;").html("&nbsp;&nbsp;账号输入正确!");
 					}
    			}else if($(this).is("#password")){
    				var reg=/^\w{6,}$/;
    				if(reg.test(getValue)==false){
    				ele.attr("style","color:red;border:1px solid red;");
    				ele.next().attr("style","color:red;").html("&nbsp;&nbsp;密码输入有误!");	
    				}else{
    				ele.attr("style","color:green;border:1px solid green");
					ele.next().attr("style","color:green;").html("&nbsp;&nbsp;密码输入正确!");	}
    			}
    			
    		});
    		$("form").submit(function(){
    		alert(1);
    			var result=false;
    			var cardId=$("#cardId");
    			var password=$("#password");
    			$.ajax({
    					async:false,
    					url:"<%=path%>/users/checkLogin",
    					type:"post",
    					data:{"cardId":cardId,"password":password},
    					dataType:"json",
    					success:function(data,xstatus,xhr){
    					if(data==1){
    						alert("该账号不存在,请先注册!")
    					}else if(data==2){
    						alert("登录失败,账号密码不匹配!")
    					}else if(data==3){
    						alert("登录失败,该账号已冻结!")
    					}else if(data==0){
    						result=true;
    					}
    				},
    				error:function(){
    					alert(4);
    				}
    			});
    			return result;
    		});
    	});
   </script>


登录的JSP中HTML表单:

 <body>
  	<sp:form modelAttribute="users" action="/users/login" method="POST">
  	<div align="center">
  		<h2>房产信息查询系统</h2> 
  		<table>
  			<tr><td>请输入身份证号</td><td><sp:input path="cardId" /><span/></td></tr>
  			<tr><td>请输入密码</td><td><sp:input path="password" /><span/></td></tr>
  		</table>
  		<tr><td><input type="submit" value="登录" /></td><td><a href="<%=basePath%>users/register">注册</a></td></tr>
  		</div> 
  	</sp:form>
  </body>


登录与注册的后端处理:

@Controller
@RequestMapping(value="/users")
public class UserController{
	@Resource
	private IUsersService usersService;
	private Map<Integer,Users> usersList;
	//用户登录
	@RequestMapping(value="/login",method=RequestMethod.GET)
	public String login(Model model){
		Users users=new Users();
		model.addAttribute(users);
		return "_login";
	}
	@RequestMapping(value="/login",method=RequestMethod.POST)
	public String login(Users users,Model model){
		model.addAttribute("users",users);
		return "viewIndex";
	}
	@RequestMapping(value="/checkLogin",method=RequestMethod.POST)
	public void checkLogin(HttpServletRequest request,
			HttpServletResponse response,Users user,Model model){
				try {
					request.setCharacterEncoding("UTF-8");
					response.setCharacterEncoding("UTF-8");
					String cardId = request.getParameter("cardId");
					System.out.println(cardId);
					String pw=request.getParameter("password");
					System.out.println(pw);
					Users u=usersService.getUserByCardId(cardId);
					String message=null;
					if(u==null||!cardId.equals(u.getCardId())){
						message="[1]";//该账号不存在,请先注册!
						System.out.println("该账号不存在,请先注册");
					}else if(!cardId.equals(u.getCardId())||!pw.equals(u.getPassword())){
						message="[2]";//登录失败,身份证号或密码错误!
						System.out.println("登录失败,身份证号或密码错误!");
					}else if(u.getStatus()==0){
						message="[3]";//登录失败,该账号已被冻结!
						System.out.println("登录失败,该账号已被冻结!");
					}else{
						message="[0]";
						System.out.println("登录成功。。。");
					}
					PrintWriter out= response.getWriter();
					out.write(JSONArray.fromObject(message).toString());
					out.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
	}
	//用户注册
	@RequestMapping(value="/register",method=RequestMethod.GET)
	public String register(Model model){
		Users users=new Users();
		model.addAttribute(users);
		return "_register";
	}
	@RequestMapping(value="/register",method=RequestMethod.POST)
	public String register(Users users,Model model){
		Integer gender=new Integer(users.getCardId().substring(17));
		if(gender%2==0)gender=0;else gender=1;
		users.setGender(gender);
		Date createTime=new Date(System.currentTimeMillis());
		users.setCreateTime(createTime);
		users.setStatus(1);
		usersService.insertUsers(users);
		return "_login";
	}
	//注册验证
	@RequestMapping(value="/checkRegister",method=RequestMethod.POST)
	public void checkRegister(HttpServletRequest request,
			HttpServletResponse response,Users user,Model model){
		try {
			request.setCharacterEncoding("UTF-8");
			response.setCharacterEncoding("UTF-8");
			String message=null;
			String id = request.getParameter("cardId");
			Users u=usersService.getUserByCardId(id);
			if(u==null){
				message="[0]";//代表可以注册
			}else{
				message="[1]";//代表已存在
			}
			PrintWriter out= response.getWriter();
			out.write(JSONArray.fromObject(message).toString());
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}


注册的JS:

<script type="text/javascript" src="<%=path %>/statics/js/jquery.js"></script>
    <script type="text/javascript">
    	$(document).ready(function(){
    		$("input").blur(function(){
    			var ele=$(this);
    			var flag=true;
    			var getValue=ele.val();//获取创建用户时输入的文本信息
    			if($(this).is("#cardId")){
    				var reg=/^\d{18,18}$/;
    				if(reg.test(getValue)==false){
    					flag=false;
    					ele.attr("style","color:red;border:1px solid red;");
    					ele.next().attr("style","color:red;").html("&nbsp;&nbsp;请输入正确的身份证号码");	
    				}else{
    					$.ajax({
    					async:false,
    					url:"<%=path%>/users/checkRegister",
    					type:"post",
    					data:{"cardId":getValue},
    					dataType:"json",
    					success:function(data,xstatus,xhr){
    					if(data==1){
    						flag=false;
    						ele.attr("style","color:red;border:1px solid red");
    						ele.next().attr("style","color:red").html("&nbsp;&nbsp;此身份证已注册!");
    						return;//此处return和break效果相同
    					}else{
    						flag=true;
							ele.attr("style","color:green;border:1px solid green");
							ele.next().attr("style","color:green;").html("&nbsp;&nbsp;此身份证可以注册!");
    					}
    				},
    				error:function(){
    					alert(4);
    				}
    			});
    				}
    			}else if($(this).is("#name")){
    				var reg=/^\w{6,25}$/;
    				if(reg.test(getValue)==false){
    				flag=false;
    				ele.attr("style","color:red;border:1px solid red;");
    				ele.next().attr("style","color:red;").html("&nbsp;&nbsp;用户名格式错误");	
    				}else{
    				flag=true;
    				ele.attr("style","color:green;border:1px solid green");
					ele.next().attr("style","color:green;").html("&nbsp;&nbsp;用户名格式正确");	}
    			}
    			else if($(this).is("#password")){
    				var reg=/^\w{6,}$/;
    				if(reg.test(getValue)==false){
    				flag=false;
    				ele.attr("style","color:red;border:1px solid red;");
    				ele.next().attr("style","color:red;").html("&nbsp;&nbsp;密码格式错误");	
    				}else{
    				flag=true;
    				ele.attr("style","color:green;border:1px solid green");
					ele.next().attr("style","color:green;").html("&nbsp;&nbsp;密码格式正确");	}
    			}
    			else if($(this).is("#confirmpassword")){
    				var reg=/^\w{6,}$/;
    				if(reg.test(getValue)==true&&getValue==$("#password").val()){
    				flag=true;
    				ele.attr("style","color:green;border:1px solid green;");
    				ele.next().attr("style","color:green;").html("&nbsp;&nbsp;密码格式正确");
    				
    				}else{
    				flag=false;
    				ele.attr("style","color:red;border:1px solid red");
					ele.next().attr("style","color:red;").html("&nbsp;&nbsp;密码格式错误");	}
    			}
    		});
    		$("form").submit(function(){
    			if(flag=true){
    				event.returnValue=confirm("注册已成功,现在去登录吗!")
    			}
    		});
    	});
    
    </script>


注册的JSP中HTML表单:

<body>
  	<sp:form modelAttribute="users" action="/users/register" method="POST">
  	<div align="center">
  		<h2>账号注册</h2> 
  		<table>
  			<tr><td>身份证号</td><td><sp:input path="cardId" /><span/></td></tr>
  			<tr><td>用户名</td><td><sp:input path="name" /><span/></td></tr>
  			<tr><td>密码</td><td><sp:input path="password" /><span/></td></tr>
  			<tr><td>确认密码</td><td><sp:input path="confirmpassword" /><span/></td></tr>
  		</table>
  		<tr><td><input type="submit" value="注册" /></td><td><input
					type="button" value="返回" onclick="history.go(-1)" /></td></tr>
  		</div> 
  	</sp:form>
  </body>


迷失代码林
浏览 12548回答 3
3回答

迷失代码林

问题已解决,又是犯很低级的错误,检查的时候很容易忽视的,为此忙活一整天。。。
随时随地看视频慕课网APP

相关分类

JQuery
WebApp
我要回答