使用数据库完成用户进行增删改查(EL,jstl,BaseDao,druid)

所需要的jar包:

commons-beanutils-1.9.3.jar   创建对象
commons-collections-3.2.2.jar  在创建查询报错ClassNotFoundException,需要导入的包
commons-logging-1.2.jar        日志包
druid-1.1.9.jar        德鲁伊
mysql-connector-java-5.1.47.jar  mysql数据库包

jstl-1.2.jar jstl包

BaseDao 

package com.wfg.util;

import org.apache.commons.beanutils.BeanUtils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

public class BaseDao {

    /**
     *
     * @param sql   执行的增删改的sql语句
     * @param parameters  对sql语句的? 进行赋值的一个object类型数组的数据
     * @return  受影响的行数
     */
    public int update (String sql, Object[] parameters) throws Exception {
        //1.获取连接数据库的对象
        Connection connection = JdbcUtil.getConnection();


            //2.获取预处理的搬运工对象
            PreparedStatement preparedStatement = connection.prepareStatement(sql);
            //3.获取参数元数据对象,获取参数的个数
            int parameterCount = preparedStatement.getParameterMetaData().getParameterCount();
            //4.循环对?进行赋值。
            /*
            parameters != null  说明传进来的数组 不为空
             Object[] objs = {"二蛋儿", 56};
              String sql = "insert into person (name, age, info) values(?,?,?)"
             */
            if (parameters != null && parameterCount == parameters.length) {
                for (int i = 1; i <= parameterCount; i++) {
                    preparedStatement.setObject(i, parameters[i - 1]);
                }
            }
            //5.执行sql语句
            int i = preparedStatement.executeUpdate();
            //6.关闭资源
            JdbcUtil.close(connection, preparedStatement);
            return i;


    }

    /**
     *
     * @param sql   执行的查询的sql语句
     * @param parameters  对sql语句的?进行赋值的参数
     * @param cls  查询出来的数据要赋值给一个对象,通过Class来获取对象
     * @param <T>
     * @return
     */
    public <T> List<T> query (String sql, Object[] parameters, Class<T> cls) throws Exception {
        //1.获取数据库的连接对象
        Connection connection = JdbcUtil.getConnection();
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;

            //2.预处理搬运工对象
            preparedStatement = connection.prepareStatement(sql);
            //3.去出来sql语句De参数?
            int parameterCount = preparedStatement.getParameterMetaData().getParameterCount();
            //4.对?进行赋值
            if(parameters != null && parameterCount == parameters.length) {
                for (int i = 1; i <= parameterCount; i++) {
                    preparedStatement.setObject(i, parameters[i - 1]);
                }
            }
          
            //5.执行sql语句
           resultSet = preparedStatement.executeQuery();
           //6.声明一个空的集合
            List<T> list = new ArrayList<>();
            //7.获取结果集元数据对象
            ResultSetMetaData metaData = resultSet.getMetaData();
            //8.获取列(字段)的个数
            int columnCount = metaData.getColumnCount();
            //9.遍历结果集数据
            while (resultSet.next()) {//控制是行
                //10.通过传入的第三个参数  Person.class
                //Person perosn = new Person();
                T t = cls.getConstructor(null).newInstance(null);
                for (int i = 1; i <= columnCount; i++) {//控制是列
                    //11.获取列的名字
                    String columnName = metaData.getColumnName(i);
                    //System.out.println(columnName);
                    //12.通过字段获取字段下面的数据
                    Object value = resultSet.getObject(columnName);
                    //System.out.println(value);
                    //13.取出来的数据赋值给一个对象
                    //以下写死了,咋办?想办法创建出来一个对象  通过反射创建
                    //这个方法需要三个参数,第一个参数 哪个对象
                    //第二个参数 实体类中属性  借助于表中字段的名字来对实体类中的属性进行赋值
                    //第三个参数  刚好取出来的值
                    BeanUtils.setProperty(t, columnName, value);
                    //t这个对象已经有值的!!
                    //第一次的for循环结束
                }
                //14.将每次while循环取出来的数据添加集合中
                list.add(t);
            }
        //15.关闭资源
        JdbcUtil.close(connection, preparedStatement, resultSet);

        return list.size() != 0 ? list : null;



    }


}

 druid

package com.wfg.util;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

public class JdbcUtil{
    public static DataSource dataSource = null;

    static {
        Properties properties = new Properties();
        try {
            properties.load(JdbcUtil.class.getClassLoader().getResourceAsStream("druid.properties"));
            dataSource = DruidDataSourceFactory.createDataSource(properties);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static Connection getConnection () {
        Connection conn = null;
        try {
            conn = dataSource.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }

    public static void close (Connection connection, PreparedStatement prst) {
        try {
            connection.close();
            prst.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    public static void close (Connection connection, PreparedStatement prst, ResultSet rs) {
        try {
            connection.close();
            prst.close();
            rs.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

配置文件 

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/java2215emp?useSSL=false
username=root
password=root

initialSize=5
maxActive=20
maxWait=2000

dao层

员工

package com.wfg.dao;

import com.wfg.pojo.Emp;

import com.wfg.util.BaseDao;

import java.util.List;

public class EmpDao extends BaseDao {
    public static EmpDao empDao;

    public EmpDao () {

    }

    public static synchronized EmpDao getInstance() {
        if (empDao == null) {
            empDao = new EmpDao();
        }
        return empDao;
    }

    //登陆功能:select * from empmanager where username = ?


    public List<Emp> selectEmpAll (Object[] objects) throws Exception {

        String sql = "select * from  emp limit ?,?";
        List<Emp> emps = super.query(sql, objects, Emp.class);

        return emps;
    }

    /*
    * 添加员工
    *
    * */
    public int addemp (Object[] objects) throws Exception {
        String sql = "insert into emp (name,age,salary,info) values(?, ?, ?,?)";
        return super.update(sql,objects);
    }

    /*
     * 删除数据
     *
     * */
    public int delemp (Object[] objects) throws Exception {
        String sql = "delete from emp where id = ?";
        return super.update(sql,objects);
    }

    /*
     *
     *  查询一条数据,用作修改
     * */
    public List<Emp> selectEmpOne (Object[] objects) throws Exception {
        String sql = "select * from emp where id = ?";
        return super.query(sql, objects,Emp.class);
    }

    /*
    * 修改数据
    *
    * */
    public int UpdateEmp (Object[] objects) throws Exception {
        String sql ="update emp set name=?, age=?, salary=?, info=? where id=?";
        return super.update(sql, objects);
    }

    /*
    * 查询所有数据,目的是为了获取总条数
    * */
    public int selectEmpSize () throws Exception {
        String sql = "select * from emp";
        List<Emp> query = super.query(sql, null, Emp.class);
        return query.size();
    }
}

管理员

package com.wfg.dao;

import com.wfg.pojo.EmpManager;
import com.wfg.util.BaseDao;

import java.util.List;

//处理管理员登陆的
public class EmpManagerDao extends BaseDao {
    public static EmpManagerDao empManagerDao;

    public EmpManagerDao () {

    }

    public static synchronized EmpManagerDao getInstance() {
        if (empManagerDao == null) {
            empManagerDao = new EmpManagerDao();
        }
        return empManagerDao;
    }

    //登陆功能:select * from empmanager where username = ?

    /**
     *
     * @param objects  前端发送过来的数据
     * @return 通过username查询出来的数据,是一个集合
     * @throws Exception
     */
    public List<EmpManager> selectMeanger (Object[] objects) throws Exception {

        String sql = "select * from  empmanager where username = ?";
        List<EmpManager> empManagers = super.query(sql, objects, EmpManager.class);

        return empManagers;
    }

}

实体类

package com.wfg.pojo;

public class Emp {
    private Integer id;
    private String name;
    private Integer age;
    private Double salary;
    private String info;

    public Emp() {
    }

    public Emp(Integer id, String name, Integer age, Double salary, String info) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.salary = salary;
        this.info = info;
    }

    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Double getSalary() {
        return salary;
    }

    public void setSalary(Double salary) {
        this.salary = salary;
    }

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }

    @Override
    public String toString() {
        return "emp{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", salary=" + salary +
                ", info='" + info + '\'' +
                '}';
    }
}
package com.wfg.pojo;

public class EmpManager {
    private Integer id;
    private String username;
    private String password;

    public EmpManager() {
    }

    public EmpManager(Integer id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer 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;
    }

    @Override
    public String toString() {
        return "Empmanager{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

注册页面

package com.wfg.servlet;

import com.wfg.dao.EmpManagerDao;
import com.wfg.pojo.EmpManager;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

@WebServlet(name = "LoginServlet", value = "/LoginServlet")
public class LoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


        //2.获取前端发送过来的数据
        String user = request.getParameter("user");
        String password = request.getParameter("password");
        System.out.println(user + ":" + password);

        //3.获取到前端数据后,连接数据库,执行查询的sql语句
        //前端数据和数据库做对比
        Object[] objs = {user};
        try {
            List<EmpManager> empManagers = EmpManagerDao.getInstance().selectMeanger(objs);
            if (empManagers != null) {
                EmpManager empManager = empManagers.get(0);
                //用户存在需要判断密码
                if (empManager.getPassword().equals(password)) {
                    //密码正确
                    //存值到session里面
                    HttpSession session = request.getSession();
                    //设置过期时间
                    session.setMaxInactiveInterval(60*60);
                    //设置键值  在另外一个页面通过session将用户取出来
                    session.setAttribute("user", user);
                    //跳转到主页面
                    response.sendRedirect("IndexServlet");
                } else {
                    //密码不正确
                    PrintWriter writer = response.getWriter();
                    writer.print("<script>alert('密码不正确');window.location='login.html'</script>");
                }


            } else {
                //用户不存在
                PrintWriter writer = response.getWriter();
                writer.print("<script>alert('没有此用户');window.location='login.html'</script>");
            }



        } catch (Exception e) {
            e.printStackTrace();
        }


    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}

 主页面

package com.wfg.servlet;

import com.wfg.dao.EmpDao;
import com.wfg.pojo.Emp;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

@WebServlet(name = "IndexServlet", value = "/IndexServlet")
public class IndexServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        HttpSession session = request.getSession(false);
        //获取emp表中的所有数据
        List<Emp> emps = null;

        //分页  每页数量是3
        int pagesize = 3;
        //pageNo 是通过url传过来的
        //第一次请求IndexServlet的时候没有带参数
        String pageNo = request.getParameter("pageNo");
        if (pageNo == null) {
            pageNo = "1";
        }

        //获取总条数
        int dataCount = 0;
        try {
            dataCount = EmpDao.getInstance().selectEmpSize();

        } catch (Exception e) {
            e.printStackTrace();
        }
        int pageCount = 0;//总页数的变量
        if (dataCount % pagesize == 0) {
            pageCount = dataCount / pagesize;
        } else {
            pageCount = dataCount / pagesize + 1;
        }


        Integer pNo = Integer.valueOf(pageNo);
        Object[] objects = {(pNo - 1) * pagesize,pagesize};

        try {
            emps = EmpDao.getInstance().selectEmpAll(objects);
            System.out.println("是否是个集合:" + emps);
        } catch (Exception e) {
            e.printStackTrace();
        }
        //将页面写到jsp
        request.setAttribute("pNo", pNo);
        request.setAttribute("pageCount", pageCount);
        request.setAttribute("emps",emps);
        request.getRequestDispatcher("emps.jsp").forward(request,response);

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}

退出登陆

package com.wfg.servlet;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet(name = "LogoutServlet", value = "/LogoutServlet")
public class LogoutServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        HttpSession session = request.getSession();
        if (session != null) {
            session.invalidate();
        }
        response.sendRedirect("login.html");
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}

 添加员工

package com.wfg.servlet;

import com.wfg.dao.EmpDao;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet(name = "AddServlet", value = "/AddServlet")
public class AddServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //获取添加员工页面的数据
        String name = request.getParameter("name");
        String age = request.getParameter("age");
        String salary = request.getParameter("salary");
        String info = request.getParameter("info");
        //连接数据库,将数据存到数据库
        //age  数据库int类型,前端数据库是int类型
        Integer age1 = Integer.valueOf(age);
        Double salary1 = Double.valueOf(salary);
        Object[] objects = {name,age1,salary1,info};

        try {
            int i = EmpDao.getInstance().addemp(objects);
            //如果添加成功回到主页面
            response.sendRedirect("IndexServlet");
        } catch (Exception e) {
            response.sendRedirect("addEmp.html");

        }


    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}

删除员工

package com.wfg.servlet;

import com.wfg.dao.EmpDao;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet(name = "DeleteServlet", value = "/DeleteServlet")
public class DeleteServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //接收前端发送过来的ID
        String id = request.getParameter("id");
        //delete from emp id = ? id在数据库中是int类型的数据
        Integer id1 = Integer.valueOf(id);
        Object[] objects = {id1};

        try {
            int delemp = EmpDao.getInstance().delemp(objects);
            //删除成功后
            response.sendRedirect("IndexServlet");
        } catch (Exception e) {
            response.sendRedirect("IndexServlet");
        }
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}

修改

package com.wfg.servlet;

import com.wfg.dao.EmpDao;
import com.wfg.pojo.Emp;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

@WebServlet(name = "UpdateServlet", value = "/UpdateServlet")
public class UpdateServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //获取前端发送的信息
        String id = request.getParameter("id");
        //需要借助这个id获取当前的这条数据展示出来
        Integer id1 = Integer.valueOf(id);
        //一点击修改按钮,先给一个展示的一条数据,就是你原来的那条数据
        //查询数据
        //查询数据,查一条数据
        Object[] objects = {id};
        Emp emp = null;
        try {
            List<Emp> emps = EmpDao.getInstance().selectEmpOne(objects);
            //emps是一个集合
            emp = emps.get(0);


        } catch (Exception e) {
            e.printStackTrace();
        }
        //开始将emp对象的值写到input输入框中
        //展示到html上面
//        PrintWriter writer = response.getWriter();
//        writer.println("<div align='center'>");
//
//        //ShowUpdateServlet 这个是接受修改之后的数据的servlet
//        //去连接数据库,然后再去修改数据库中的数据
//        //
//        writer.println("<form action='ShowUpdateServlet?id="+emp.getId()+"' method='post'>");
//        writer.println("姓名:<input type='text' name='name' value='"+ emp.getName() +"'><br>");
//        writer.println("年龄:<input type='text' name='age' value='"+ emp.getAge() +"'><br>");
//        writer.println("薪资:<input type='text' name='salary' value='"+ emp.getSalary() +"'><br>");
//        writer.println("信息:<input type='text' name='info' value='"+ emp.getInfo() +"'><br>");
//        writer.println("<input type=\"submit\" value=\"提交修改\">");
//        writer.println("</form>");
//        writer.println("</div>");
        request.setAttribute("emp",emp);
        request.getRequestDispatcher("update.jsp").forward(request,response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}
package com.wfg.servlet;

import com.wfg.dao.EmpDao;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet(name = "ShowUpdateServlet", value = "/ShowUpdateServlet")
public class ShowUpdateServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取修改之后的表单数据

        //获取前端传过来的ID数据
        String id = request.getParameter("id");
        Integer id1 = Integer.valueOf(id);
        String name = request.getParameter("name");
        String age = request.getParameter("age");
        Integer age1 = Integer.valueOf(age);
        String salary = request.getParameter("salary");
        Double salary1 = Double.valueOf(salary);
        String info = request.getParameter("info");
        Object[] objects = {name, age1, salary1, info, id1};
        try {
            int i = EmpDao.getInstance().UpdateEmp(objects);
            //修改之后回到主页面
            response.sendRedirect("IndexServlet");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}

过滤器

package com.wfg.filter;

import javax.servlet.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebFilter("/*")
public class CharcaterFilter implements Filter {

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
        //拦截所有资源,在拦截所有资源之前,先写请求乱码和响应乱码的解决方案
        //先执行过滤,再执行servlet
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        chain.doFilter(request, response);
    }
}
package com.wfg.filter;

import javax.servlet.*;
import javax.servlet.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebFilter("/*")
public class LoginFilter implements Filter {
    public void init(FilterConfig config) throws ServletException {
    }

    public void destroy() {
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
        //思路 有session和没有session的两种情况
        /*
        * 有session 登陆过了,放行
        * 没有session 没有登陆  拦截,跳转到登陆页面
        * */

        HttpServletRequest request1 = (HttpServletRequest) request;
        HttpServletResponse response1 = (HttpServletResponse) response;
        HttpSession session = request1.getSession(false);
        System.out.println("session打印:" + session);
        //如果session为null,就证明没有登陆,直接跳转到login.jsp
        String requestURI = request1.getRequestURI();
        System.out.println(requestURI);//是URL的一部分
        // day51
        if (requestURI.endsWith("/login.jsp") || requestURI.endsWith("LoginServlet")) {
            chain.doFilter(request,response);
        } else if (session == null || session.getAttribute("user") == null) {
            //不能放行,让其跳转到login.jsp
            response1.sendRedirect("login.jsp");
        } else if (session.getAttribute("user") != null) {
            chain.doFilter(request,response);
        }

    }
}

jsp文件

添加

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2022/10/31
  Time: 14:24
  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>
<div align="center">
    <form action="AddServlet" method="post">
        姓名:<input type="text" name="name"><br>
        年龄:<input type="text" name="age"><br>
        薪资:<input type="text" name="salary"><br>
        信息: <input type="text" name="info"><br>
        <input type="submit" value="添加">
        <input type="reset" value="重置">

    </form>
</div>


</body>
</html>

注册页面

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2022/10/31
  Time: 14:25
  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>

<!--管理员登陆页面-->
<!--数据提交给LoginServlet,让LoginServlet去连接数据库
    看是否能连接成功
-->
<form action="LoginServlet" method="post">
    <input type="text" name="user"><br>
    <input type="password" name="password"><br>
    <input type="submit" value="登陆">

</form>

</body>
</html>

修改页面

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2022/10/31
  Time: 14:28
  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>
<div>
    <form action='ShowUpdateServlet?id=${emp.id}' method='post'>
        姓名:<input type="text" name="name" value="${emp.name}"><br>
        年龄:<input type="text" name="age" value="${emp.age}"><br>
        薪资:<input type="text" name="salary" value="${emp.salary}"><br>
        信息:<input type="text" name="info" value="${emp.info}"><br>
        <input type="submit" value="提交">
    </form>
</div>

</body>
</html>

主页jsp

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2022/10/31
  Time: 11:22
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%-- 只要Java中进行setAttribute("键","值")
    在jsp文件中都能取出来
--%>
<div align="right">${user}</div>
<div><a href="addEmp.jsp">添加员工</a></div>
<div><a href="login.jsp"></a></div>
<table border="8" bordercolor="blue" align="center" width="80%">
    <tr>
        <th>编号</th>
        <th>姓名</th>
        <th>年龄</th>
        <th>薪资</th>
        <th>信息</th>
        <th colspan="2">操作</th>
    </tr>
<%-- 循环取数据 --%>
<c:forEach var="emp" items="${emps}">
    <tr>
        <td>${emp.id}</td>
        <td>${emp.name}</td>
        <td>${emp.age}</td>
        <td>${emp.salary}</td>
        <td>${emp.info}</td>
        <td><a href="DeleteServlet?id=${emp.id}">删除</a></td>
        <td><a href="UpdateServlet?id=${emp.id}">修改</a></td>
    </tr>

</c:forEach>
</table>

<%-- 前端页面 --%>
<div align="center">


    <a href="IndexServlet?pageNo=1">首页</a>
    <c:if test="${pNo > 1}">
        <a href="IndexServlet?pageNo=${pNo - 1}">上一页</a>
    </c:if>
    <c:if test="${pNo <= 1}">
        <a href="IndexServlet?pageNo=${pNo - 1}" style="pointer-events: none;">上一页</a>
    </c:if>


   <c:if test="${pNo < pageCount}">
       <a href="IndexServlet?pageNo=${pNo + 1}">下一页</a>
   </c:if>

    <c:if test="${pNo > pageCount}">

        <a href="IndexServlet?pageNo=${pNo + 1}" style="pointer-events: none;">下一页 </a>
    </c:if>

    <a href="IndexServlet?pageNo=${pageCount}">尾页</a>
</div>

</body>
</html>

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值