<%--
Created by IntelliJ IDEA.
User: renboyu010214
Date: 2021/2/1
Time: 19:54
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>书城注册页面</title>
<style>
#div1 {
border: 4px;
border-style: ridge;
border-radius:5px;
width: 400px;
}
#div2 {
background: gray;
opacity: 0.6;
z-index: 10;
width: 350px;
height: 35px;
margin-bottom: 20px;
}
</style>
<script src="js/jquery-3.5.1.min.js"></script>
<script>
function checkUsername(){
//获取用户名
var username=$("#username").val();
//定义正则表达式
var reg_name=/^\w{8,20}$/;
//判断用户名是否满足正则表达式
var result=reg_name.test(username);
if(result){
//用户名合法
$("#username").css("border","");
}else {
//用户名非法
$("#username").css("border","2px solid red");
}
return result;
}
function checkPassword(){
//获取密码
var password=$("#password").val();
//定义正则表达式
var reg_pwd=/^\w{8,20}$/;
//判断密码是否满足正则表达式
var result=reg_pwd.test(password);
if(result){
//密码合法
$("#password").css("border","");
}else {
//密码非法
$("#password").css("border","2px solid red");
}
return result;
}
function checkConfirmPWD(){
//获取密码
var password=$("#password").val();
//获取确认密码
var confirm_pwd=$("#confirm_pwd").val();
//定义正则表达式
var reg_pwd=/^\w{8,20}$/;
//判断重新输入的密码是否满足正则表达式
var result=reg_pwd.test(confirm_pwd);
//判断两次输入的密码是否一致
var result2=false;
if(password===confirm_pwd){
result2=true;
}else{
result2=false;
}
if(result&&result2){
//重新输入密码通过
$("#confirm_pwd").css("border","");
}else {
//未通过
$("#confirm_pwd").css("border","2px solid red");
}
return result;
}
function checkTel(){
//获取电话号码
var tel=$("#tel").val();
//定义正则表达式
var reg_tel=/^1[3|4|5|7|8][0-9]{9}$/;
//判断电话是否满足正则表达式
var result=reg_tel.test(tel);
if(result){
//电话合法
$("#tel").css("border","");
}else {
//电话非法
$("#tel").css("border","2px solid red");
}
return result;
}
function checkEmail(){
//获取邮箱
var email=$("#email").val();
//定义正则表达式
var reg_email=/^[A-Za-z0-9-._]+@[A-Za-z0-9-]+(.[A-Za-z0-9]+)*(.[A-Za-z]{2,6})$/;
//判断邮箱是否满足正则表达式
var result=reg_email.test(email);
if(result){
//邮箱合法
$("#email").css("border","");
}else {
//邮箱非法
$("#email").css("border","2px solid red");
}
return result;
}
$(function () {
$("#registerForm").submit(function () {
//采用ajax异步提交表单(以便于利用后端返回的数据进行操作,同时保证了信息的安全性)
if(checkPassword() && checkUsername()
&& checkEmail() && checkConfirmPWD() && checkTel()){
//表单验证通过,数据符合要求,执行异步提交操作
//$(this).serialize表示通过serialize方法获取表单数据(这里的this表示的就是registerForm)
//第三个参数就是利用后端返回的data数据进行操作
$.post("RegisterServlet",$(this).serialize(),function (data) {
if(data.flag){
//注册成功,跳转到登录页面
alert("注册成功!单击跳转到登录页面");
location.href="login.jsp";
}else {
//注册失败,向页面添加提示信息(errorMsg内添加文本)
$("#errorMsg").html(data.errMsg);
}
})
}else{
alert("提交失败!请检查信息是否填写准确");
}
//返回值若为true,则表单会被同步提交,所以这里始终将返回值设为false
return false;
})
//绑定所有离焦事件
$("#username").blur(checkUsername);
$("#password").blur(checkPassword);
$("#confirm_pwd").blur(checkConfirmPWD);
$("#email").blur(checkEmail);
$("#tel").blur(checkTel);
})
</script>
</head>
<body>
<form id="registerForm">
<table align="center" border=0 cellpadding=0 cellspacing=0 style="width:100% ;height:100%" >
<td style="width:100%;" align="center" valign="middle">
<div id="div1">
<img src="img/icon.png" width="250" />
<div id="div2">
<h2 align="center">会员注册</h2>
</div>
<div id="errorMsg" style="color: red;text-align: center"></div>
<table align="center">
<tr>
<td><label for="username">用户名</label></td>
<td><input type="text" name="username" placeholder="请输入用户名" id="username"></td>
</tr>
<tr>
<td><label for="truename">姓名</label></td>
<td><input type="text" name="truename" placeholder="请输入真实姓名" id="truename"></td>
</tr>
<tr>
<td><label for="password">密码</label></td>
<td><input type="password" name="password" placeholder="请输入密码" id="password"></td>
</tr>
<tr>
<td><label for="confirm_pwd">确认密码</label></td>
<td><input type="password" name="confirm_pwd" placeholder="请再次输入密码" id="confirm_pwd"></td>
</tr>
<tr>
<td><label for="tel">联系电话</label></td>
<td><input type="text" name="tel" placeholder="请输入手机号" id="tel"></td>
</tr>
<tr>
<td><label for="email">Email</label></td>
<td><input type="email" name="email" placeholder="请输入Email" id="email"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="注册账号" id="submit"></td>
</tr>
</table>
<p> 已有账号!<a href="/login.jsp">点击登录</a></p>
</div>
</td>
</table>
</form>
</body>
</html>
<%--
Created by IntelliJ IDEA.
User: renboyu010214
Date: 2021/2/3
Time: 9:00
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>书城登录页面</title>
<style>
#div1 {
border: 4px;
border-style: ridge;
border-radius:5px;
width: 400px;
}
#div2 {
border-radius:5px;
background: gray;
opacity: 0.6;
z-index: 10;
width: 350px;
height: 35px;
margin-bottom: 20px;
}
</style>
<script src="js/jquery-3.5.1.min.js"></script>
<script>
$(function () {
//为登录按钮绑定单机事件
$("#login").click(function () {
//采用ajax异步提交表单(以便于利用后端返回的数据进行操作,同时保证了信息的安全性)
$.post("LoginServlet",$("#loginForm").serialize(),function (data) {
//data为返回的结果日志
if(data.flag){
//登录成功
location.href="index.jsp";
}else{
//登录失败,显示错误信息,提示重新登录
$("#errorMsg").html(data.errMsg);
}
})
})
})
</script>
</head>
<body>
<form id="loginForm">
<table align="center" border=0 cellpadding=0 cellspacing=0 style="width:100% ;height:100%" >
<td style="width:100%;" align="center" valign="middle">
<div id="div1">
<img src="img/icon.png" width="250" />
<div id="div2">
<h2 align="center">会员登录</h2>
</div>
<div id="errorMsg" style="color: red;text-align: center"></div>
<table align="center">
<tr>
<td><label for="username">用户名</label></td>
<td><input type="text" name="username" placeholder="请输入用户名" id="username"></td>
</tr>
<tr>
<td><label for="password">密 码</label></td>
<td><input type="password" name="password" placeholder="请输入密码" id="password"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="button" value="登录账号" id="login"></td>
</tr>
</table>
<p> 没有账户?<a href="/register.jsp">点击注册</a></p>
</div>
</td>
</table>
</form>
</body>
</html>
package cn.ywrby.model;
public class Member {
private Integer ID;
private String username;
private String truename;
private String password;
private String city;
private String address;
private String postcode;
private String cardno;
private String cardtype;
private String tel;
private String email;
public Member(Integer ID, String username,
String truename, String password,
String city, String address, String postcode,
String cardno, String cardtype,
String tel, String email) {
this.ID = ID;
this.username = username;
this.truename = truename;
this.password = password;
this.city = city;
this.address = address;
this.postcode = postcode;
this.cardno = cardno;
this.cardtype = cardtype;
this.tel = tel;
this.email = email;
}
public Member() {
this.ID = Integer.valueOf("-1");
this.username = "";
this.truename = "";
this.password = "";
this.city = "";
this.address = "";
this.postcode = "";
this.cardno = "";
this.cardtype = "";
this.tel = "";
this.email = "";
}
public Integer getID() {
return ID;
}
public void setID(Integer ID) {
this.ID = ID;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getTruename() {
return truename;
}
public void setTruename(String truename) {
this.truename = truename;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getPostcode() {
return postcode;
}
public void setPostcode(String postcode) {
this.postcode = postcode;
}
public String getCardno() {
return cardno;
}
public void setCardno(String cardno) {
this.cardno = cardno;
}
public String getCardtype() {
return cardtype;
}
public void setCardtype(String cardtype) {
this.cardtype = cardtype;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "Member{" +
"ID=" + ID +
", username='" + username + '\'' +
", truename='" + truename + '\'' +
", password='" + password + '\'' +
", city='" + city + '\'' +
", address='" + address + '\'' +
", postcode='" + postcode + '\'' +
", cardno='" + cardno + '\'' +
", cardtype='" + cardtype + '\'' +
", tel='" + tel + '\'' +
", email='" + email + '\'' +
'}';
}
}
package cn.ywrby.model;
/**
* 用于封装后端返回前端的数据对象
*/
public class ResultInfo {
private boolean flag; //后端正常返回true,后端异常返回false
private Object data; //后端 返回结果数据对象
private String errMsg; //发生异常的错误信息
public ResultInfo(boolean flag, Object data, String errMsg) {
this.flag = flag;
this.data = data;
this.errMsg = errMsg;
}
public ResultInfo(boolean flag) {
this.flag = flag;
}
public ResultInfo() {
}
public ResultInfo(boolean flag, String errMsg) {
this.flag = flag;
this.errMsg = errMsg;
}
public boolean isFlag() {
return flag;
}
public void setFlag(boolean flag) {
this.flag = flag;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public String getErrMsg() {
return errMsg;
}
public void setErrMsg(String errMsg) {
this.errMsg = errMsg;
}
}
package cn.ywrby.utils;
import org.junit.Test;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
import java.util.Properties;
/**
* ConnDB工具类
* 用于进行数据库连接与数据库操作
*/
public class ConnDB {
public Connection connection=null;
public Statement statement=null;
public ResultSet resultSet=null;
//定义各个静态变量
private static String url;
private static String user;
private static String password;
private static String driver;
/*
* 静态代码块,只在创建时调用一次
* 可以在此处进行配置文件的读取,以及驱动注册等步骤
*
* 将url,user,password,driver等变量
* 存入配置文件并读取可以提高代码复用性
*/
static {
try {
//创建配置文件数据集
Properties pro=new Properties();
//创建类加载器classLoader
ClassLoader classLoader=ConnDB.class.getClassLoader();
//通过类加载器获取在src下的配置文件,这样可以避免绝对路径带来的问题
URL res=classLoader.getResource("jdbc.properties");
assert res != null; //确保res不为空
String path=res.getPath();
//加载配置文件
pro.load(new FileReader(path));
//获取配置文件中的数据
url=pro.getProperty("url");
user=pro.getProperty("user");
password=pro.getProperty("password");
driver=pro.getProperty("driver");
//注册驱动
Class.forName(driver);
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 创建数据库连接对象
* @return 返回新创建的数据库连接对象
*/
public static Connection getConnection() {
Connection connection=null; //创建数据库连接对象
try {
connection=DriverManager.getConnection(url,user,password); //进行数据库连接
} catch (SQLException throwables) {
throwables.printStackTrace();
}
if(connection == null){
//如果未获取到连接,输出连接信息,方便调试
System.err.println("DbConnectionManager.getConnection():"
+url+"\r\n"+user+"\r\n"+password+"\r\n"+driver);
}
//返回连接对象
return connection;
}
/**
* 执行数据库查询语句
* @param sql sql语句
* @return 查询结果集
*/
public ResultSet executeQuery(String sql) {
try {
connection=getConnection(); //获取数据库连接对象
//获取statement以操作数据库
statement=connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
resultSet=statement.executeQuery(sql); //执行sql语句并获得结果集对象
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return resultSet; //返回结果集
}
/**
* 执行更新数据库语句
* @param sql sql语句
* @return 返回更新语句执行结果
*/
public int executeUpdate(String sql){
int result=0; //sql更新语句执行结果
try {
connection=getConnection(); //获取数据库连接对象
//获取statement以操作数据库
statement=connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
result=statement.executeUpdate(sql); //执行更新语句
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return result; //返回更新操作执行结果
}
/**
* 实现更新数据后获取自动生成的编号
* @param sql sql语句
* @return 返回自动生成的编号
*/
public int executeUpdate_id(String sql){
int result=0; //sql更新语句执行结果
try {
connection=getConnection(); //获取数据库连接对象
//获取statement以操作数据库
statement=connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
result=statement.executeUpdate(sql); //执行更新语句
String ID="select @@IDENTITY as id"; //定义用于获取刚刚生成的自动编号的SQL语句
resultSet=statement.executeQuery(sql); //获取自动生成的编号
if(resultSet.next()){ //如果存在该数据
int autoID=resultSet.getInt("id"); //将获取到的ID数据保存并返回
result=autoID;
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return result; //返回更新操作执行结果
}
/**
* 关闭数据库相关资源
*/
public void closeDB(){
if(resultSet!=null){
try {
resultSet.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if(statement!=null){
try {
statement.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if(connection!=null){
try {
connection.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
@Test
public void executeQueryTest(){
String sql="select * from tb_member where username='Leslie123'";
ResultSet rs=executeQuery(sql);
try {
while (resultSet.next()) {
String password = rs.getString("password");
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
System.out.println(password);
}
}
package cn.ywrby.dao;
import cn.ywrby.model.Member;
import java.util.List;
public interface MemberDao {
public int insert(Member member);
public List select();
}
package cn.ywrby.dao;
import cn.ywrby.model.Member;
import cn.ywrby.utils.ChStr;
import cn.ywrby.utils.ConnDB;
import org.junit.Test;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class MemberDaoImpl implements MemberDao{
private ConnDB connDB=new ConnDB();
private ChStr ch=new ChStr();
/**
* 创建会员
* @param member 会员对象
* @return 返回记录更改的条数
*/
@Override
public int insert(Member member) {
//System.out.println("insert方法正常执行...");
int ret=-1; //用于记录更新记录的条数
//获取传入用户的数据信息
String username=member.getUsername();
String truename=member.getTruename();
String password=member.getPassword();
String city=member.getCity();
String address=member.getAddress();
String postcode=member.getPostcode();
String cardno=member.getCardno();
String cardtype=member.getCardtype();
String tel=member.getTel();
String email=member.getEmail();
try {
//插入语句
String sql="INSERT INTO tb_member(userName,trueName,passWord,city,"
+ "address,postcode,cardNo,cardType,tel,email) VALUES('"
+ username+"','"+truename+"','"
+ password+"','"+city+"','"
+ address+"','"+postcode+"','"
+ cardno+"','"+cardtype+"','"
+ tel+"','"+email+"')";
ret=connDB.executeUpdate(sql); //执行插入语句
}catch (Exception e){
e.printStackTrace();
ret=0;
}
//关闭数据库连接
connDB.closeDB();
return ret;
}
/**
* 获取所有会员数据信息
* @return 以列表形式返回所有会员数据
*/
@Override
public List<Member> select() {
//声明会员对象
Member member=null;
//创建List集合,用于保存会员信息
List<Member> memberList=new ArrayList();
String sql="select * from tb_member"; //定义sql语句
ResultSet resultSet=connDB.executeQuery(sql); //获取所有会员数据信息
try {
//将会员数据信息插入列表
while (resultSet.next()) {
member = new Member(Integer.valueOf(resultSet.getString(1)),
resultSet.getString(2),resultSet.getString(3),
resultSet.getString(4),resultSet.getString(5),
resultSet.getString(6),resultSet.getString(7),
resultSet.getString(8),resultSet.getString(9),
resultSet.getString(12),resultSet.getString(13));
memberList.add(member);
}
}catch (SQLException e){
e.printStackTrace();
}
connDB.closeDB(); //关闭数据库连接
return memberList;
}
/**
* 根据用户名查询是否存在该用户
* @param username 用户名
* @return 是否存在同名用户
*/
public Member findByUsername(String username) throws SQLException {
//System.out.println("findByUsername方法正常执行...");
Member member=null;
String sql="select * from tb_member where userName = '"+username+"'";
//System.out.println(sql);
ResultSet resultSet=connDB.executeQuery(sql);
if(resultSet!=null){
try {
while (resultSet.next()) {
member = new Member(Integer.valueOf(resultSet.getString(1)),
resultSet.getString(2), resultSet.getString(3),
resultSet.getString(4), resultSet.getString(5),
resultSet.getString(6), resultSet.getString(7),
resultSet.getString(8), resultSet.getString(9),
resultSet.getString(12), resultSet.getString(13));
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
return member;
}
/**
* 根据用户名和密码查询用户是否存在
* @param username 用户名
* @param password 密码
* @return 用户对象
*/
public Member findByUsernameAndPassword(String username, String password) {
//System.out.println("findByUsername方法正常执行...");
Member member=null;
String sql="select * from tb_member where userName = '"+username+"' and password = '"+password+"'";
//System.out.println(sql);
ResultSet resultSet=connDB.executeQuery(sql);
if(resultSet!=null){
try {
while (resultSet.next()) {
member = new Member(Integer.valueOf(resultSet.getString(1)),
resultSet.getString(2), resultSet.getString(3),
resultSet.getString(4), resultSet.getString(5),
resultSet.getString(6), resultSet.getString(7),
resultSet.getString(8), resultSet.getString(9),
resultSet.getString(12), resultSet.getString(13));
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
return member;
}
@Test
public void insertTest(){
Member member=new Member();
member.setUsername("Leslie");
member.setTruename("BoyuRen");
member.setPassword("010214");
member.setCity("ChongQing");
member.setAddress("BayiRoadBeibeiDistrict");
member.setPostcode("761007");
member.setCardno("1301021999");
member.setCardtype("IDcard");
member.setTel("0311-89160328");
member.setEmail("ywrby@foxmail.com");
int num=insert(member);
System.out.println(num);
}
@Test
public void selectTest(){
List<Member> memberList=select();
for(Member m:memberList){
System.out.println(m+"\n");
}
}
@Test
public void findTest() throws SQLException {
Member member=findByUsername("Leslie123");
System.out.println(member);
}
}
package cn.ywrby.service;
import cn.ywrby.dao.MemberDaoImpl;
import cn.ywrby.model.Member;
import cn.ywrby.utils.ConnDB;
import java.sql.SQLException;
public class RegisterService {
public boolean regist(Member member) throws SQLException {
//System.out.println("RegisterService正常执行...");
//创建数据库连接
ConnDB conn=new ConnDB();
MemberDaoImpl dao=new MemberDaoImpl();
//查询用户名是否存在
String username=member.getUsername();
Member memberResult=dao.findByUsername(username);
if(memberResult!=null){
//用户名存在,注册失败
return false;
}
//用户名不存在 保存信息
dao.insert(member);
return true;
}
}
package cn.ywrby.servlet;
import cn.ywrby.dao.MemberDaoImpl;
import cn.ywrby.model.Member;
import cn.ywrby.model.ResultInfo;
import cn.ywrby.service.RegisterService;
import cn.ywrby.utils.ConnDB;
import com.fasterxml.jackson.databind.ObjectMapper;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Map;
@WebServlet("/RegisterServlet")
public class RegisterServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//System.out.println("RegisterServlet正常执行...");
ConnDB conn=new ConnDB();
MemberDaoImpl insertMember=new MemberDaoImpl();
RegisterService service=new RegisterService();
Member member=new Member();
//获取数据
Map<String,String[]> memberData=request.getParameterMap();
//封装对象
member.setUsername(memberData.get("username")[0]);
member.setTruename(memberData.get("truename")[0]);
member.setPassword(memberData.get("password")[0]);
member.setTel(memberData.get("tel")[0]);
member.setEmail(memberData.get("email")[0]);
//调用service完成注册
boolean result= false;
try {
result = service.regist(member);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
//封装对象返回前端
ResultInfo info=new ResultInfo();
if(result){
//用户创建成功,数据成功保存
info.setFlag(true);
}else{
//用户创建失败,数据未保存
info.setFlag(false);
info.setErrMsg("注册失败!请尝试重新注册");
}
//将info对象序列化为json
ObjectMapper mapper=new ObjectMapper();
String json=mapper.writeValueAsString(info);
//将json数据写回客户端
response.setContentType("application/json; charset=utf-8");
response.getWriter().write(json);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
}
package cn.ywrby.service;
import cn.ywrby.dao.MemberDaoImpl;
import cn.ywrby.model.Member;
import cn.ywrby.utils.ConnDB;
public class LoginService {
public Member login(Member member) {
//创建数据库连接
ConnDB conn=new ConnDB();
MemberDaoImpl dao=new MemberDaoImpl();
return dao.findByUsernameAndPassword(member.getUsername(),member.getPassword());
}
}
package cn.ywrby.servlet;
import cn.ywrby.model.Member;
import cn.ywrby.model.ResultInfo;
import cn.ywrby.service.LoginService;
import com.fasterxml.jackson.databind.ObjectMapper;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取用户输入数据
Map<String, String[]> map = request.getParameterMap();
//封装对象
Member member = new Member();
member.setUsername(map.get("username")[0]);
member.setPassword(map.get("password")[0]);
//调用service进行查询与匹配
LoginService service = new LoginService();
Member member1 = service.login(member);
ResultInfo info = new ResultInfo();
//判断用户能否正常登录
if(member1==null){
//用户不存在,提示用户检查用户名以及密码输入
info.setFlag(false);
info.setErrMsg("用户名或密码输入错误!");
}else {
//用户存在,提示用户成功登陆
info.setFlag(true);
}
//响应数据
ObjectMapper mapper=new ObjectMapper();
response.setContentType("application/json;charset=utf-8");
mapper.writeValue(response.getOutputStream(),info);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
}