• javaweb实现简单登陆功能


    javaweb实现登陆

    用户登陆首页

    <%--
      Created by IntelliJ IDEA.
      User: Administrator
      Date: 2020/6/4
      Time: 19:05
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
        <form method="POST" action="/login">
            <div class="info">${error}</div>
            <div class="form-group">
                <label for="userName">userName</label>
    
                <input id="userName" type="text" class="form-control" name="userName" value="" required autofocus>
            </div>
    
            <div class="form-group">
                <label for="password">Password</label>
    
                <input id="password" type="password" class="form-control" name="password" required data-eye>
            </div>
    
            <div class="form-group no-margin">
                <button type="submit" class="btn btn-primary btn-block" >
                    Login
                </button>
            </div>
            <%--<div class="margin-top20 text-center">
                Don't have an account? <a href="register.html">Create One</a>
            </div>--%>
        </form>
    
    </body>
    </html>
    

    用户类

    package com.mrh.pojo**;

    ** /*
    * @ClassName User
    * @Description* TODO
    * ** @Author m
    * @Version 1.0
    */
    * public class User {
    private Integer id
    *;
    ** private String userName**;
    ** private String password**;

    ** @Override
    public String toString() {
    return “User{” +
    “id=” + id +
    “, userName=’” + userName + ‘’’ +
    “, password=’” + password + ‘’’ +
    ‘}’**;
    ** }

    public Integer getId() {
    return id**;
    ** }

    public void setId(Integer id) {
    this.id = id**;
    ** }

    public void setUserName(String userName) {
    this.userName = userName**;
    ** }

    public void setPassword(String password) {
    this.password = password**;
    ** }

    public String getUserName() {
    return userName**;
    ** }

    public String getPassword() {
    return password**;
    ** }
    }

    用户基础类:

    写了一个通过用户名返回查找到的用户的函数

    package com.mrh.dao.user**;

    ** import com.mrh.dao.BaseDao**;
    ** import com.mrh.pojo.User**;

    ** import java.sql.ResultSet**;
    ** import java.sql.SQLException**;

    ** /*
    * @ClassName UserDaoImp1
    * @Description* TODO
    * ** @Author m
    * @Version 1.0
    */
    * public class UserDaoImp1 implements UserDao {
    /

    *
    * @param* userName
    * ** @return
    通过用户名查找用户*,*返回第一个查找到的用户
    * ** @throws
    *SQLException
    * **/
    * public User getUser(String userName) throws SQLException {

     String sql = "select * from user where username = ?"**;
    

    ** Object[] parm = {userName}**;

    ** BaseDao.connection();
    ** ResultSet res = BaseDao.query(sql
    ,parm);

    ** User user = null**;

    ** while (res.next()){
    user = new User();
    ** user.setId((Integer) res.getObject(“id”))
    ;
    ** user.setUserName((String) res.getObject(“username”));
    ** user.setPassword((String) res.getObject(“password”))
    ;
    ** }
    BaseDao.close();
    ** return user
    ;

    ** }

    }

    用户服务类

    通过调用用户基础类与得到的用户密码比较,相同则返回该用户

    package com.mrh.service**;

    ** import com.mrh.dao.user.UserDao**;
    ** import com.mrh.dao.user.UserDaoImp1**;
    ** import com.mrh.pojo.User**;

    ** import java.sql.SQLException**;

    ** /*
    * @ClassName UserLogin
    * @Description* *通过调用用户基础类与得到的用户密码比较,相同则返回该用户
    * ** @Author m
    * @Version 1.0
    */
    * public class UserService {

    UserDao userDao = new UserDaoImp1()**;

    ** public User userLogin(String userName**,** String password) throws SQLException {
    User user = userDao.getUser(userName);
    ** if(user != null && user.getPassword().equals(password)){
    return user
    ;
    ** }else {
    return null**;
    ** }
    }

    }

    数据库连接基础类:

    package com.mrh.dao;
    
    import java.io.InputStream;
    import java.sql.*;
    import java.util.Properties;
    
    /**
     * @ClassName BaseDao
     * @Description TODO
     * @Author m
     * @Version 1.0
     */
    public class BaseDao {
    
        private static String  driver;
        private static String  url;
        private static String  username;
        private static String  password;
    
        //静态代码块,类加载的时候就初始化了
        static {
            Properties properties = new Properties();
            //通过类加载器读取对应资源
            InputStream inputStream = BaseDao.class.getClassLoader().getResourceAsStream("db.properties");
    
            try {
                properties.load(inputStream);
            }catch (Exception e){
                e.printStackTrace();
            }
    
            driver = properties.getProperty("driver");
            url = properties.getProperty("url");
            username = properties.getProperty("username");
            password = properties.getProperty("password");
    
        }
    
        private static Connection con = null;
        private static PreparedStatement preparedStatement = null;
        private static ResultSet res = null;
    
        public static Connection getCon() {
            return con;
        }
    
        public static PreparedStatement getPreparedStatement() {
            return preparedStatement;
        }
    
        public static ResultSet getRes() {
            return res;
        }
    
        //数据库连接
        public static void connection(){
            try{
                Class.forName(driver);
                con = DriverManager.getConnection(url,username,password);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    
        //关闭数据库连接
        public static void close(){
            if(res != null){
                try{
                    res.close();
                } catch (SQLException throwable) {
                    throwable.printStackTrace();
                }
            }
            if(preparedStatement != null){
                try{
                    preparedStatement.close();
                } catch (SQLException throwable) {
                    throwable.printStackTrace();
                }
            }
            if(con != null){
                try{
                    con.close();
                } catch (SQLException throwable) {
                    throwable.printStackTrace();
                }
            }
        }
    
        //查询公共类
        public static ResultSet query(String sql, Object[] parm) throws SQLException {
            preparedStatement = con.prepareStatement(sql);
            for (int i = 0; i < parm.length; i++) {
                preparedStatement.setObject(i+1,parm[i]);
            }
            res = preparedStatement.executeQuery();
            return res;
        }
    
        //update公共类
        public static int update(String sql, Object[] parm) throws SQLException {
            preparedStatement = con.prepareStatement(sql);
            for (int i = 0; i < parm.length; i++) {
                preparedStatement.setObject(i+1,parm[i]);
            }
            return preparedStatement.executeUpdate();
        }
    
    }
    

    控制层loginServlet:

    package com.mrh.servlet**;

    ** import com.mrh.pojo.User**;
    ** import com.mrh.service.UserService**;

    ** import javax.servlet.ServletException**;
    ** import javax.servlet.http.HttpServlet**;
    ** import javax.servlet.http.HttpServletRequest**;
    ** import javax.servlet.http.HttpServletResponse**;
    ** import java.io.IOException**;
    ** import java.sql.SQLException**;

    ** /*
    * @ClassName loginServlet
    * @Description* TODO
    * ** @Author m
    * @Version 1.0
    */
    * public class loginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req
    *,** HttpServletResponse resp) throws ServletException**,** IOException {

    ​ //获取用户名和密码
    ​ String userName = req.getParameter(“userName”);
    ** String password = req.getParameter(“password”)
    ;

    ** UserService userService = new UserService();
    ** User user = null
    ;
    ** try {
    user = userService.userLogin(userName**,** password);
    ** } catch (SQLException throwables) {
    throwables.printStackTrace()
    ;
    ** }

    ​ if(user == null){
    ​ //登陆失败,返回错误信息
    ​ req.setAttribute(“error”,“用户名或密码错误”);
    ** //转发到登陆界面,所以url不会变
    ​ req.getRequestDispatcher(“index.jsp”).forward(req
    ,resp);
    ** }else {
    ​ resp.getWriter().write(“登陆成功”)**;
    ** }

    }

    @Override
    protected void doPost(HttpServletRequest req**,** HttpServletResponse resp) throws ServletException**,** IOException {
    doGet(req**,** resp)**;
    ** }

    }

    测试结果:

    因为我喜欢追寻过程中的自己
  • 相关阅读:
    Ueditor使用以及遇到的问题
    自己写一个分页PageHelper
    C#_IO操作_查询指定文件夹下的每个子文件夹占空间的大小
    C#发邮件_EmailHelper
    位运算反(~)与(&)异或(^)或(|)右移(>>)左移(<<)
    shell命令快捷键
    Openstack Day1简介及虚拟环境搭建
    VirtualBox双网卡搭建Linux虚拟实验环境
    git 学习笔记
    python socket 网络编程
  • 原文地址:https://www.cnblogs.com/IzuruKamuku/p/14359776.html
Copyright © 2020-2023  润新知