栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

使用jsp+dao完成注册和增删改查

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用jsp+dao完成注册和增删改查

目录

1、登录

2、登录成功跳转的页面

3、注册流程

2、将某个表中的信息展示到网页中

4、添加员工信息

5、员工信息的删除

6、员工信息的修改

目录

1、登录

2、登录成功跳转的页面

3、注册流程

2、将某个表中的信息展示到网页中

4、添加员工信息

5、员工信息的删除

6、员工信息的修改

7、退出员工表

8、四大域对象



1、登录

login.jsp 登录界面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

  
    首页
  
  
  <%
    String error = request.getParameter("error");
    if (error != null && "1".equals(error)){
      out.print("账号或密码错误");
    }
  %>
    
用户名:
账 号:

loginDo.jsp(登录处理界面)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    登录验证


    <%
        //接受表单提交的数据
        //编码的设置
        request.setCharacterEncoding("utf-8");
        //接受账号和密码
        String userName = request.getParameter("uname");
        String pwd = request.getParameter("pwd");
        UserDao userDao = new UserDao();
        User user = userDao.findByNameAndPwd(userName, pwd);
        if (user != null) {
            //跳转成功页面
            session.setAttribute("user",user);
            response.sendRedirect("success.jsp");
        }else {
            //out.print("登录失败");
            //如果从这里到登录界面 表示登陆失败  error=1表示登录失败的标志
            response.sendRedirect("login.jsp?error=1");
        }

    %>


2、登录成功跳转的页面

success.jsp(登录成功页面)注意:对员工信息的增删改,完成之后都会返回成功页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    登录成功


<%
    Object user = session.getAttribute("user");
    if (user == null) {
        response.sendRedirect("login.jsp");
    }
%>

退出

    <%
        DeptDao deptDao = new DeptDao();
        List all = deptDao.findAll();
        for (Dept dept : all) {
    %>
    
    <%
        }
    %>
编号 姓名 地址 操作
<%= dept.getId()%> <%= dept.getName()%> <%= dept.getAddress()%> ">删除 ">修改

3、注册流程

register.jsp  (注册页面)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    注册页面
    



注册界面
<%--registerDo 后缀为Do的都是处理页面,就是再浏览器不显示该界面 他就像的一个过度。页面和dao之间的联系。--%>
账号:
密码:
姓名:

registerDo.jsp  (处理页面)

<%@ page import="com.ykq.dao.UserDao" %>
<%@ page import="com.ykq.entity.User" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    <%
        //设置编码
        request.setCharacterEncoding("utf-8");
        //接受注册的信息
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String realname = request.getParameter("realname");//""

        //通过调用dao方法把接受的注册信息存入数据库表中。
        UserDao userDao = new UserDao();
        User user=new User(username,password,realname);
        userDao.insert(user);

        //跳转
        response.sendRedirect("login.jsp");
    %>


2、将某个表中的信息展示到网页中

这里以用户表和员工表为例:

(1)封装一个用户的实体类.

public class User {
    private int id;
    private String userName;
    private String pwd;

    public User() {
    }

    public User(int id, String userName, String pwd) {
        this.id = id;
        this.userName = userName;
        this.pwd = pwd;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", userName='" + userName + ''' +
                ", pwd='" + pwd + ''' +
                '}';
    }

    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 getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
}

(2)抽取公共的方法与属性

public class BaseDao {
    private String driverName = "com.mysql.cj.jdbc.Driver";
    private String url = "jdbc:mysql://localhost:3306/jdbc01?serverTimezone = Asia/Shanghai";
    private String user = "root";
    private String password = "zxp";
    protected Connection connection = null;
    protected PreparedStatement ps = null;
    protected ResultSet res = null;

    //抽取一个增删改查的公共的方法
    public void edit(String sql,Object ... params) {
        try {
            getConn();
            ps = connection.prepareStatement(sql);

            for (int i = 0; i < params.length; i++) {
                ps.setObject(i+1,params[i]);
            }
            ps.executeUpdate();
        }catch (Exception e) {
            e.printStackTrace();
        }finally {
            closeAll();
        }
    }

    //抽取公共的连接的方法
    public void getConn() throws Exception{
        Class.forName(driverName);
        connection = DriverManager.getConnection(url,user,password);
    }

    //抽取公共的关闭连接的方法
    public void closeAll(){
        try {
            if(res!=null){
                res.close();
            }
            if(ps!=null){
                ps.close();
            }
            if(connection!=null){
                connection.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

(3) 封装用户的操作类--用户登录的验证以及注册

public class UserDao extends BaseDao{
    //根据用户名密码查询数据库--登录
    public User findByNameAndPwd(String name,String pwd) {
        User user = null;
        try {
            getConn();
            String sql = "select * from tb_user where userName = ? and pwd = ?";
            ps = connection.prepareStatement(sql);
            ps.setObject(1,name);
            ps.setObject(2,pwd);
            res = ps.executeQuery();
            while (res.next()) {
                user = new User();
                user.setId(res.getInt("id"));
                user.setUserName(res.getString("userName"));
                user.setPwd(res.getString("pwd"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            closeAll();
        }
        return user;
    }

    //添加用户到数据库 完成注册功能
    public void insert(User user) {
        String sql = "insert into tb_user values (null,?,?)";
        edit(sql,user.getUserName(),user.getPwd());
    }
}

(4)封装员工类

public class User {
    private int id;
    private String userName;
    private String pwd;

    public User() {
    }

    public User(int id, String userName, String pwd) {
        this.id = id;
        this.userName = userName;
        this.pwd = pwd;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", userName='" + userName + ''' +
                ", pwd='" + pwd + ''' +
                '}';
    }

    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 getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
}

(5)员工的dao方法

public class UserDao extends BaseDao{
    //根据用户名密码查询数据库
    public User findByNameAndPwd(String name,String pwd) {
        User user = null;
        try {
            getConn();
            String sql = "select * from tb_user where userName = ? and pwd = ?";
            ps = connection.prepareStatement(sql);
            ps.setObject(1,name);
            ps.setObject(2,pwd);
            res = ps.executeQuery();
            while (res.next()) {
                user = new User();
                user.setId(res.getInt("id"));
                user.setUserName(res.getString("userName"));
                user.setPwd(res.getString("pwd"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            closeAll();
        }
        return user;
    }

    //添加用户到数据库 完成注册功能
    public void insert(User user) {
        String sql = "insert into tb_user values (null,?,?)";
        edit(sql,user.getUserName(),user.getPwd());
    }
}

4、添加员工信息

add.jsp (添加界面)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    添加界面


姓名:
地址:

addDo.jsp (处理页面)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


  <%
      request.setCharacterEncoding("utf-8");
      String addName = request.getParameter("newName");
      String addAddress = request.getParameter("newAddress");
      DeptDao deptDao = new DeptDao();
      Dept dept = new Dept();
      dept.setName(addName);
      dept.setAddress(addAddress);
      deptDao.addOne(dept);
      response.sendRedirect("success.jsp");
  %>


5、员工信息的删除

delete.jsp(删除)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    <%
        String id = request.getParameter("id");
        out.print(id);
        DeptDao deptDao = new DeptDao();
        //Integer.parseInt(id) 把数字字符串转换为整形
        deptDao.deleteOne(Integer.parseInt(id));
        response.sendRedirect("success.jsp");
    %>

6、员工信息的修改

update.jsp(修改页面)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    修改界面


    <%
        String id = request.getParameter("id");
        DeptDao deptDao = new DeptDao();
        Dept dept = deptDao.findById(Integer.parseInt(id));
    %>
    
姓名:
地址:
<%-- 普通按钮不会提交表单数据 type=button--%>

updateDo.jsp(处理页面)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    <%
        request.setCharacterEncoding("utf-8");
        String id = request.getParameter("id");
        String name = request.getParameter("name");
        String address = request.getParameter("address");

        DeptDao deptDao = new DeptDao();
        Dept dept = new Dept(Integer.parseInt(id),name,address);
        deptDao.update(dept);

        //跳转界面到成功界面
        response.sendRedirect("success.jsp");
    %>


7、退出员工表
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    <%
        session.invalidate();
        response.sendRedirect("login.jsp");
    %>


8、四大域对象
//四大域对象 可以存储数据

//当前页面有效
pageContext.setAttribute("name","pageContext中存储的对象");
//作用范围是同一个请求有效
request.setAttribute("name","request中存储的对象");
//作用范围是同一个会话有效
session.setAttribute("name","session中存储的对象");
//作用范围是同一个应用
application.setAttribute("name","application中存储的对象");

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/949418.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号