Coder Social home page Coder Social logo

potterbai / ssm-login Goto Github PK

View Code? Open in Web Editor NEW

This project forked from anselleeyy/ssm-login

0.0 0.0 0.0 1.13 MB

基于SSM框架实现的登录注册功能

License: GNU General Public License v3.0

JavaScript 7.30% Java 54.32% CSS 32.03% HTML 6.35%

ssm-login's Introduction

SSM-Login

基于SSM框架实现的登录注册功能

项目开发环境

  • windows 10_64
  • jdk 1.8_144
  • maven 3.5.0
  • spring 4.3.11.RELEASE
  • mybatis 3.4.5
  • mysql 5.7.18

Model 层

数据库设计
User 表

字段名 注释 数据类型 自动递增 备注
id id int Yes 主键(primary key)
username 用户名 varchar(25) No 唯一(Unique)
password 密码 varchar(25) NO
email 邮箱 varchar(30) NO

java bean

/**
 * 用户模型层( User )
 * 用户属性含: username, email, password
 * 采用 bean validation 验证
 * 验证内容包含:
 *     1. 用户名( username )长度在4-20之间
 *     2. 邮箱( email )规范验证
 *     3. 密码( password )仅由长度在3-14之间的数字组成
 */
@Size(min = 4, max = 20, message = "用户名长度应该在4-20字符之间")
private String username;
    
@Email
private String email;

@Pattern(regexp = "^[0-9]{3,14}$", message = "密码长度为3-14,仅包含数字")
private String password;

Controller 层

Login.java

/**
 * 用户登录控制层
 * 连接数据库,调用 checkUser(username) 方法
 * 如果正确则提示并在5s后进入主页
 * 失败则对应提示用户不存在或用户名或密码错误,重新返回登录页面
 */
@RequestMapping(value = "/login")
    public ModelAndView UserLogin(Model model, HttpServletRequest request, HttpServletResponse response)
            throws IOException {
        ModelAndView mv = new ModelAndView();
        String username = String.valueOf(request.getParameter("username"));
        String password = String.valueOf(request.getParameter("password"));
        User user = this.userService.checkUser(username);
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();
        if (user == null) {
            // 该用户不存在
            request.setAttribute("username", username);
            mv.setViewName("login");
        } else if (user.getPassword().equals(password)) {
            // 该用户存在且用户名和密码匹配
            mv.setViewName("login_success");
        } else {
            // 用户名或密码错误
            request.setAttribute("username", username);
            mv.setViewName("login");
        }
        return mv;
    }

Register.java

/**
 * 用户注册验证层
 * 采用bean validation + Spring-mvc 验证用户输入信息是否有误
 * 有误则返回注册页面并对应提示错误信息
 * 无误则调用 insertNewUser(User) 方法进行数据库操作
 * 若用户名已经存在则提示并返回注册页面
 * 否则提示注册成功并跳转至登录页面
 */
@RequestMapping("/verify")
    public ModelAndView processUser(HttpServletRequest request, HttpServletResponse response, @Valid User user,
            BindingResult result) throws IOException {
        ModelAndView mv = new ModelAndView();
        mv.addObject("user", user);
        if (result.hasErrors()) {
//          表单验证有误
            mv.setViewName("register");
        } else {
            String username = request.getParameter("username");
            String email = request.getParameter("email");
            String password = request.getParameter("password");
            response.setContentType("text/html; charset=UTF-8");
            PrintWriter out = response.getWriter();
            if (this.userService.checkUser(username) != null) {
//              用户名存在
                mv = new ModelAndView("forward:/register");
            } else {
//              插入成功
                User newUser = new User(username, email, password);
                this.userService.insertNewUser(newUser);
                mv.setViewName("register_success");
            }
        }
        return mv;
    }

View 层

login.jsp

<form class="login" action="login" name="login" onkeydown="keyAction(event)">
    <input type="text" placeholder="用户名" name="username" value="${username}"><br>
    <input type="password" placeholder="密码" name="password"><br>
    <input type="button" value="登录" onclick="Login()">
    <input type="button" value="注册" onclick="Register()">   
</form>

register.jsp

<mvc:form class="login" action="verify" name="register" modelAttribute="user">
    <mvc:input type="text" path="username" placeholder="用户名" name="username" /><br>
    <mvc:errors path="username" style="color: RED" />
    <mvc:input type="email" path="email" placeholder="邮箱地址" name="email" />
    <br>
    <mvc:errors path="email" style="color: RED" />
    <mvc:input type="password" path="password" placeholder="密码" name="password" />
    <br>
    <mvc:errors path="password" style="color: RED" />
    <input type="password" placeholder="再次输入密码" name="password2" /> <br>
    <input type="button" value="注册" onclick="Regis()">
</mvc:form>

ssm-login's People

Contributors

anselleeyy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.