Day16JavaWeb【旅游项目】——登录

目录

  • 项目搭建
  • 登录功能实现

项目搭建

这些文件得创建好
MySessionUtils
log4j.properties
SqlMapConfig.xml
映射文件 例如UserDao.xml

目录结构

  • Web层
    Servlet:前端控制器
    html:视图
    Filter:过滤器
    BeanUtils:数据封装
    Jackson:json序列化工具
  • Service层
    Javamail:java发送邮件工具
    Redis:nosql内存数据库
    Jedis:java的redis客户端
  • Dao层
    Mysql:数据库
    Mybatis:对jdbc进行封装

对该项目进行分析
Day16JavaWeb【旅游项目】——登录_第1张图片

  • 数据库创建

登录功能实现

  • 分析登录功能
    Day16JavaWeb【旅游项目】——登录_第2张图片
    Day16JavaWeb【旅游项目】——登录_第3张图片

创建实例
User.java
src\main\java\com\vission\bean\User.java

public class User {
    private int uid;
    private String username;
    private String password;
    private String name;
    private Date birthday;
    private char sex;
    private String telephone;
    private String email;
    private char status;
    private String code;
.
.
.
}

src\main\java\com\vission\service\UserService.java

package com.vission.service;

import com.vission.bean.User;
import com.vission.dao.UserDao;
import com.vission.utils.MySessionUtils;
import org.apache.ibatis.session.SqlSession;

public class UserService {
    public int login(User user){

        SqlSession session = MySessionUtils.getSession();
        UserDao userDao = session.getMapper(UserDao.class);

        User u = userDao.findUserByUsername(user.getUsername());
        if (u == null){
            System.out.println("返回值-1");
            return -1;

            //未找到该用户
        }else if ('Y' == u.getStatus()){
//            System.out.println(u.getPassword()); //输出密码
            if(u.getUsername().equals(user.getUsername())  && u.getPassword().equals(user.getPassword())){
                //账号密码正确
                System.out.println("返回值1");
                return 1;
            }else {
                //账号密码错误
                System.out.println("返回值-2");
                System.out.println(user.getPassword());
                return  -2;

            }
        }else {
            System.out.println("返回值-3");
            //未激活
            return -3;
        }

    }

}

loginServlet
src\main\java\com\vission\web\servlet\loginServlet.java

package com.vission.web.servlet;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.vission.bean.ResponseInfo;
import com.vission.bean.User;
import com.vission.service.UserService;

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 org.apache.commons.beanutils.BeanUtils;

import java.lang.reflect.InvocationTargetException;
import java.util.Map;

@WebServlet("/loginServlet")

public class loginServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
        System.out.println("你妈妈");
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        Map<String, String[]> map = request.getParameterMap();
        User user = new User();
        try {
            //参1 javaBean 参2 map
            BeanUtils.populate(user,map);//将map里面所有的参数赋值给javaBean
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }

        UserService userService = new UserService();
        int code = userService.login(user);
        ResponseInfo info = new ResponseInfo();
        info.setCode(code);
        if (code == 1) {
            System.out.println("账号密码正确,且激活");
//            info.setData("账号密码正确,且激活");
            System.out.println(user);
        }
        if (code == -1) {
            System.out.println("未找到该用户");
//            info.setData("未找到该用户");
        }
        if (code == -2) {
            System.out.println("账号密码错误");
            info.setData("账号密码错误");
        }
        if (code == -3) {
            System.out.println("未激活");
            info.setData("未激活");
        }
//        转成json
        String json =new ObjectMapper().writeValueAsString(info);
        response.getWriter().println(json);
    }

}

jsp文件直接copy老师的

function checkUserName() {
            //获取输入框的值
            var username = $("#username").val();

            //正则表达式  定义一个规则,执行test方法,符合规则返回true,否则返回false

            var reg = /^\w{8,20}$/;

            var flag = reg.test(username); //判断

            //如果符合要求,设置输入框边框是正常,否则设置红色

            if (flag) {
                $("#username").css("border", "");
            } else {
                $("#username").css("border", "1px solid red");
            }
            //alert(flag)
            return flag;
        }
function checkPassword() {
            //判断密码输入框的值是否合法
            var username = $("#password").val();
            var reg = /^\w{8,20}$/;

            var flag = reg.test(username); //判断
            if (flag) {
                $("#password").css("border", "");//无色框
            } else {
                $("#password").css("border", "1px solid red");//红框
            }
            //alert(flag)
            return flag;
        }
 $(function () {
            $("#errorMsg").html("");
            // 判断两个输入框架的是否格式正确
            $("#username").blur(checkUserName);//输入框失去焦点
            // 如果正确,使用ajax发送请求到servlet
            $("#password").blur(checkPassword);

            $("#btn_login").click(function () {
                //要求两个值正确,我们才做提交
                if (checkUserName() && checkPassword()) {
                    var un = $("#username").val()
                    var pw = $("#password").val()
                    //alert(un+pw)
                    //写提交
                    $.ajax({
                        url: "loginServlet",
                        async: true,
                        data: "username=" + un + "&password=" + pw,
                        type: "post",
                        dataType: "json",
                        success: function (data) {
                            // alert(data)  {"code":1,"data":"登录成功"}
                            if (1 == data.code) {
                                //跳转到主页 index.html
                                $("#errorMsg").html("");
                                window.location = "index.html"
                            } else {
                                //显示在界面上
                                $("#errorMsg").html(data.data);
                            }
                        },
                        error: function () {
                            alert("服务器发生了错误")
                        }
                    });
                }
            })


        })

你可能感兴趣的:(JavaWeb,mysql,json,java,servlet,ajax)