打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
注册登录模块dede
package com.lyq.bean;

public class User {
private int id;         // 标识
   private String username;// 用户名
   private String password;// 密码
   private String sex;     // 性别
   private String tel;     // 电话
   private String email;   // 电子邮箱
   public int getId() {
       return id;
   }
   public void setId(int id) {
       this.id = id;
}
   public String getUsername() {
       return username;
   }
   public void getUsername(String  username) {
       this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
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;
}
}

package com.lyq.bean;

import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.mysql.jdbc.Connection;

import servlet.Connsql;

public class UserDao {
public void saveUser(User user){
        // 插入用户注册信息的SQL语句
        String sql = "insert into tb_user(username,password,sex,tel,photo,email) values(?,?,?,?,?,?)";
        try {
            // 获取PreparedStatement对象
            PreparedStatement ps = Connsql.getConnection().prepareStatement(sql);
            // 对SQL语句的占位符参数进行动态赋值
            ps.setString(1, user.getUsername());
            ps.setString(2, user.getPassword());
            ps.setString(3, user.getSex());
            ps.setString(4, user.getTel());
            ps.setString(5, user.getEmail());
            // 执行更新操作
            ps.executeUpdate();
            // 释放此 PreparedStatement 对象的数据库和 JDBC 资源
            ps.close();
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            // 关闭数据库连接
//            ConnectDB.closeConnection(conn);
        }
    }
    /**
     * 用户登录
     * @param username 用户名
     * @param password 密码
     * @return 用户对象
     */
    public User login(String username, String password){
        User user = null;
        // 根据用户名及密码查询用户信息
        String sql = "select * from tb_user where username = ? and password = ?";
        try {
            // 获取PreparedStatement对象
            PreparedStatement ps = Connsql.getConnection().prepareStatement(sql);
            // 对SQL语句的占位符参数进行动态赋值
            ps.setString(1, username);
            ps.setString(2, password);
            // 执行查询获取结果集
            ResultSet rs = ps.executeQuery();
            // 判断结果集是否有效
            if(rs.next()){
                // 实例化一个用户对象
                user = new User();
                // 对用户对象属性赋值
                user.setId(rs.getInt("id"));
                user.getUsername(rs.getString("username"));
                user.setPassword(rs.getString("password"));
                user.setSex(rs.getString("sex"));
                user.setTel(rs.getString("tel"));
                user.setEmail(rs.getString("email"));
            }
            // 释放此 ResultSet 对象的数据库和 JDBC 资源
            rs.close();
            // 释放此 PreparedStatement 对象的数据库和 JDBC 资源
            ps.close();
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            // 关闭数据库连接
//            ConnectDB.closeConnection(conn);
        }
        return user;
    }
    /**
     * 判断用户名在数据库中是否存在
     * @param username 用户名
     * @return 布尔值
     */
    public boolean userIsExist(String username){
        // 根据指定用户名查询用户信息
        String sql = "select * from tb_user where username = ?";
        try {
            // 获取PreparedStatement对象
            PreparedStatement ps = Connsql.getConnection().prepareStatement(sql);
            // 对用户对象属性赋值
            ps.setString(1, username);
            // 执行查询获取结果集
            ResultSet rs = ps.executeQuery();
            // 判断结果集是否有效
            if(!rs.next()){
                // 如果无效则证明此用户名可用
                return true;
            }
            // 释放此 ResultSet 对象的数据库和 JDBC 资源
            rs.close();
            // 释放此 PreparedStatement 对象的数据库和 JDBC 资源
            ps.close();
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            // 关闭数据库连接
//            ConnectDB.closeConnection(conn);
        }
        return false;
    }
}

package servlet;

import java.io.IOException;

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.lyq.bean.*;
/**
 * 用户退出Servlet
 * 
 * @author lixiyu
 */
public class ExitServlet extends HttpServlet {
private static final long serialVersionUID = 1599366365079846238L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取session
HttpSession session = request.getSession();
// 获取用户对象
User user = (User)session.getAttribute("user");
// 判断用户是否有效
if(user != null){
// 将用户对象逐出session
session.removeAttribute("user");
// 设置提示信息
request.setAttribute("info", user.getUsername() + " 已成功退出!");
}
// 转发到message.jsp页面
request.getRequestDispatcher("message.jsp").forward(request, response);
}

}


package servlet;


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

import com.lyq.bean.*;
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = -3009431503363456775L;
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取用户名
String username = request.getParameter("username");
// 获取密码
String password = request.getParameter("password");
// 实例化UserDao对象
UserDao userDao = new UserDao();
// 根据用户密码查询用户
User user = userDao.login(username, password);
// 判断user是否为空
if(user != null){
// 将用户对象放入session中
request.getSession().setAttribute("user", user);
// 转发到result.jsp页面
request.getRequestDispatcher("message.jsp").forward(request, response);
}else{
// 登录失败
request.setAttribute("info", "错误:用户名或密码错误!");
request.getRequestDispatcher("message.jsp").forward(request, response);
}
}

}

package servlet;

import java.io.IOException;

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

import com.lyq.bean.User;
import com.lyq.bean.UserDao;

public class RegServlet extends HttpServlet {
    private static final long serialVersionUID = 5280356329609002908L;
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 获取用户名
        String username = request.getParameter("username");
        // 获取密码
        String password = request.getParameter("password");
        // 获取性别
        String sex = request.getParameter("sex");
        // 获取联系电话
        String tel = request.getParameter("tel");
        // 获取电子邮箱
        String email = request.getParameter("email");
        // 实例化UserDao对象
        UserDao userDao = new UserDao();
        if(username != null && !username.isEmpty()){
            if(userDao.userIsExist(username)){
                // 实例化一个User对象
                User user = new User();   
                // 对用户对象中的属性赋值
                user.getUsername(username);
                user.setPassword(password);
                user.setSex(sex);
                user.setTel(tel);
                user.setEmail(email);
                // 保存用户注册信息
                userDao.saveUser(user);
                request.setAttribute("info", "恭喜,注册成功!<br>");
            }else{
                request.setAttribute("info", "错误:此用户名已存在!");
            }
        }
        // 转发到message.jsp页面
        request.getRequestDispatcher("message.jsp").forward(request, response);
    }
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
JDBC加强
Spring中jdbcTemplate的用法实例(一)
MySQL从入门到入魔之数据库连接池(04)
JdbcTemplate学习笔记
使用JDBC在MySQL数据库中快速批量插入数据
PreparedStatement的用法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服