php如何使用AJax和json实现登录验证

PhpPhp 2023-08-28 20:30:47 1135
摘要: AJAX和Json完成用户登录1、提前导入jquery依赖和fastjson依赖2、新建jsp页面<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><head><script...

AJAX和Json完成用户登录

1、提前导入jquery依赖和fastjson依赖

2、新建jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>

<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
<script type="text/javascript" src="login.js"></script>

<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
		
	<!-- 不使用submit,用ajax+json实现局部刷新,实现登录 -->
	<form action="" method="post">
		<span id="msg"></span><br/>
		用户姓名:<input type="text" name="username" id="username"><br/>
		用户密码:<input type="text" name="password" id="password"><br/>
		<input type="button" value="登录" id="submit">
	</form>
	
</body>
</html>

3、新建js文件

$(function(){
	$("#submit").click(function(){
	
		var username = $("#username").val();
		var password = $("#password").val();
		//获取json格式的文本内容
		$.post("login?mark=login",{"username":username,"password":password},
			function(data){
				if(data.log){
					/*输入要跳转的页面*/
					/*window.location.href="https://www.php.cn/link/3729ff995bfa947622cdf0612e57c332";*/
					alert("success");
				}else{
					$("#msg").css("color","red").html(data.msg);
				}
		},"json"
		
		);
		
	});
});

4、新建controller类

查询是否存在此用户
把map对象转换成json字符串类型,写入到内存,并返回给js文件

private void login(HttpServletRequest request, HttpServletResponse response) throws Exception {
		// 
		response.setContentType("text/html;charset=utf-8");
		PrintWriter writer = response.getWriter();
		String msg = "";
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		Map<String, Object> map = new HashMap();
		
		//查询是否存在此用户
		User user = new LoginServer().login(username, password);

		if(user!=null) {
			map.put("log", true);
			map.put("msg", "成功");
		}else {
			map.put("log", false);
			map.put("msg", "用户名或者密码错误");
		}
		
		//把map对象转换成json字符串类型,写入到内存,并返回给js文件
		writer.write(JSON.toJSONString(map));
		
	}