MVC简单的登录注册

 MVC:模型(model)-视图(view)-控制器(Controller)

1.model : 处理数据逻辑部分,对数据库进行操作,业务逻辑

2.view : 数据显示部分,用户操作

3.controller : 从视图层读取数据,通过模型层完成操作

效果图:

 该项目采用MVC模式,前端页面用到了Bootstrap及Jquery

项目结构:

首页index.jsp,注册页面采用的Bootstrap的模态框

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登录页面</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">

<link rel="stylesheet" type="text/css"
    href="./bootstrap-3.3.7-dist/css/bootstrap.css">
<script src="./jquery-3.2.1/jquery-3.2.1.min.js"></script>
<script src="./bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
</head>
<style>
#re {
    margin-top: 10px;
    float: right;
}
</style>
<script type="text/javascript">
    
    function vform(){
    var name = $("#na").val();
    var password = $("#pw").val();
    if(name == ""){
        alert("请输入用户名");
        return false;
    }
    if(password == ""){
        alert("请输入密码");
        return false;
    }
        return true;
    }
</script>
<body>
    <div class="container">


        <!--模态框,点击注册按钮弹窗-->
        <div class="modal fade" id="myModal" tabindex="-1" role="dialog"
            aria-labelledby="myModalLabel">
            <div class="modal-dialog" role="document">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal"
                            aria-label="Close">
                            <span aria-hidden="true">&times;</span>
                        </button>
                        <h4 class="modal-title" id="myModalLabel">用户注册</h4>
                    </div>
                    <div class="modal-body">
                        <form class="form-horizontal" action="Register" method="post" onsubmit="return vform()">
                            <div class="form-group">
                                <label class="col-sm-2 control-label">帐号</label>
                                <div class="col-sm-10">
                                    <input type="text" class="form-control" id="un"
                                        name="username" placeholder="请输入帐号">
                                </div>
                            </div>
                            <div class="form-group">
                                <label class="col-sm-2 control-label">密码</label>
                                <div class="col-sm-10">
                                    <input type="password" class="form-control" id="pw"
                                        name="password" placeholder="Password">
                                </div>
                            </div>

                            <div class="form-group">
                                <div class="col-sm-offset-2 col-sm-10">
                                    <button type="submit" class="btn btn-default">提交</button>
                                    <font color="red">${error}</font>

                                </div>
                            </div>

                        </form>

                    </div>
                    
                </div>
            </div>
        </div>
        <!-- ============================================================================= -->
        <button class="btn btn-default" id="re"
            data-toggle="modal" data-target="#myModal">注册</button>
        <center>
            <h1>用户登录</h1>
        </center>
        <hr>
        <form class="form-horizontal" action="LoginServlet" method="post">

            <div class="form-group">
                <label class="col-sm-2 control-label">帐号</label>
                <div class="col-sm-10">
                    <input type="text" class="form-control" id="username"
                        name="username" value="${username}" placeholder="请输入帐号">
                </div>
            </div>
            <div class="form-group">
                <label class="col-sm-2 control-label">密码</label>
                <div class="col-sm-10">
                    <input type="password" class="form-control" id="password"
                        name="password" value="${password}" placeholder="Password">
                </div>
            </div>

            <div class="form-group">
                <div class="col-sm-offset-2 col-sm-10">
                    <button type="submit" class="btn btn-default">登录</button>
                    <font color="red">${error}</font>

                </div>
            </div>
        </form>

    </div>
</body>

</html>

main.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%-- <%@ page language="java" import="com.login.model.*" pageEncoding="utf-8" %> --%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>用户列表</title>
<link rel="stylesheet" type="text/css"
    href="./bootstrap-3.3.7-dist/css/bootstrap.css">
<script src="./jquery-3.2.1/jquery-3.2.1.min.js"></script>
<script src="./bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>

</head>
<style>
h4 {
    float: right;
}
</style>

<body>
    <div class="container">
        <h4>欢迎你:${currentUser.username}</h4>
        <center>
            <h1>员工信息列表</h1>
        </center>

        <div class="row">
            <div class="col-md-4 col-md-offset-8">
                <button class="btn btn-primary">新增</button>
            </div>
        </div>

        <div class="row">
            <div class="col-md-12">
                <table class="table table-condensed">
                    <tr>
                        <td>ID</td>
                        <td>姓名</td>
                        <td>性别</td>
                        <td>邮箱</td>
                        <td>出生年月</td>
                        <td>操作</td>
                    </tr>
                    <c:forEach var="list" items="${list}">
                        <tr>
                            <td>${list.id}</td>
                            <td>${list.name}</td>
                            <td><c:if test="${list.gender eq 0 }">男</c:if>
                                <c:if test="${list.gender eq 1 }">女</c:if>
                            </td>
                            <td>${list.email}</td>
                            <td>${list.birthday}</td>
                            <td><button class="btn btn-primary">编辑</button>
                                <button class="btn btn-danger">删除</button>
                            </td>
                        </tr>
                    </c:forEach>
                </table>
            </div>
        </div>
    </div>
</body>
</html>

 数据库连接代码:DbUtil.java

package com.login.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DbUtil {
        private String url="jdbc:mysql://localhost:3306/ssm";
        private String driver="com.mysql.jdbc.Driver";
        private String user="root";
        private String password="123";
        
        public Connection getCon() throws Exception{
            Class.forName(driver);
            Connection con=DriverManager.getConnection(url,user,password);
            return con;
        }
        public static void getClose(Connection con) throws SQLException{
            if(con!=null){
                con.close();
            }
        }
}

实体类:User.java

package com.login.model;

public class User {
        private int id;
        private String username;
        private String password;
        
        public User() {
            super();
        }
        public User(String username, String password) {
            super();
            this.username = username;
            this.password = password;
        }
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        
}

Employee.java

package com.login.model;

import java.util.Date;

public class Employee {
        private int id;
        private String name;
        private String password;
        private int gender;
        private String email;
        private Date birthday;
        
        
        
        public Employee() {
            super();
        }
        public Employee(int id, String name, String password, int gender,
                String email, Date birthday) {
            super();
            this.id = id;
            this.name = name;
            this.password = password;
            this.gender = gender;
            this.email = email;
            this.birthday = birthday;
        }
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        public int getGender() {
            return gender;
        }
        public void setGender(int gender) {
            this.gender = gender;
        }
        public String getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
        public Date getBirthday() {
            return birthday;
        }
        public void setBirthday(Date birthday) {
            this.birthday = birthday;
        }
        
        
}

UserDao.java

package com.login.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.login.model.User;

public class UserDao {

    // 登录
    public User login(Connection con, User user) throws SQLException {
        User resultUser = null;
        String sql = "select * from user where username=? and password=?";
        PreparedStatement ps = con.prepareStatement(sql);
        ps.setString(1, user.getUsername());
        ps.setString(2, user.getPassword());
        ResultSet rs = ps.executeQuery();
        if (rs.next()) {
            resultUser = new User();
            resultUser.setUsername(rs.getString("username"));
            resultUser.setPassword(rs.getString("password"));
        }
        return resultUser;
    }
// 显示所有信息
    public User getAll(Connection con, User user) throws SQLException {
        User resultUser = null;
        String sql = "select * from user ";
        PreparedStatement ps = con.prepareStatement(sql);
        ResultSet rs = ps.executeQuery();
        if (rs.next()) {
            resultUser = new User();
        }
        return resultUser;
    }
// 注册 public boolean insert(Connection con, User user) { String sql = "insert into user(username,password) values(?,?)"; boolean flag = false; try { PreparedStatement psta = con.prepareStatement(sql);// psta.setString(1, user.getUsername()); psta.setString(2, user.getPassword()); flag = psta.executeUpdate() > 0; } catch (Exception e) { e.printStackTrace(); } try { con.close(); } catch (SQLException e) { e.printStackTrace(); } return flag; } }

LoginServlet.java

package com.login.servlet;

import java.io.IOException;

import java.sql.Connection;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.login.dao.UserDao;
import com.login.model.User;
import com.login.util.DbUtil;

public class LoginServlet extends HttpServlet {
    /**
     * 
     */
    private static final long serialVersionUID = 1063251913450385726L;
    DbUtil db = new DbUtil();
    UserDao userDao = new UserDao();

    public LoginServlet() {
        super();
    }

    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        this.doPost(request, response);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String username = request.getParameter("username");
        String password = request.getParameter("password");
        Connection con = null;
        try {
            User user = new User(username,password);
            con = db.getCon();
            User currentUser=userDao.login(con, user);
            if(currentUser == null){
                request.setAttribute("error", "用户名或密码错误");
                request.setAttribute("username", username);
                request.setAttribute("password", password);
                request.getRequestDispatcher("index.jsp").forward(request, response);
            }else{
                    //使用request对象的getSession()获取session,如果session不存在则创建一个
                    HttpSession session = request.getSession();
                     //将数据存储到session中
                     session.setAttribute("currentUser",currentUser);
                     ArrayList<Employee> list = userDao.selectNotDeleteList();
                  if (list != null) {
                    HttpSession session1 = request.getSession();
                      // 将数据存储到session中
                    session1.setAttribute("list", list);
                    response.sendRedirect("main.jsp");
            } } }
catch (Exception e) { e.printStackTrace(); } } public void init() throws ServletException { } }

Register.java

package com.login.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.login.dao.UserDao;
import com.login.model.User;
import com.login.util.DbUtil;

public class Register extends HttpServlet {

    private static final long serialVersionUID = -6373590750212315505L;
     DbUtil db=new DbUtil();
     UserDao userDao=new UserDao();
    public Register() {
        super();
    }

    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }

    
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            String username=request.getParameter("username");
            String password=request.getParameter("password");
            Connection con=null;
            
            User user=new User(username,password);
            try{
                con=db.getCon();
                
            }catch(Exception e){
                e.printStackTrace();
            }
            boolean current=userDao.insert(con, user);
            if(current){
                request.setAttribute("error", "注册成功,请登录");
                request.getRequestDispatcher("index.jsp").forward(request, response);
            }else{
                request.setAttribute("error", "注册失败");
                request.getRequestDispatcher("regist.jsp").forward(request, response);
            }
        
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            this.doGet(request, response);
    }

    public void init() throws ServletException {
        // Put your code here
    }

}

小总结:前一个多月都花时间在SSM上面了,对于Servlet和Jsp的基础不怎么样,所以现在还是开始把基础打好,再去研究其他框架。

原文地址:https://www.cnblogs.com/liurg/p/8328614.html