134 EMS综合项目

1.项目需求

  • 将提供好的HTML页面,修改为JSP。

  • 实现管理员登录功能,并应用权限验证。

  • 对员工实现增删改查。

  • 查询员工使用分页查询,并提供首页、尾页、上一页、下一页。

2.项目搭建

2.1项目目录搭建

• com.wlw.ems.utils 工具包

• com.wlw.ems.entity 实体类

• com.wlw.ems.dao 数据访问接口

• com.wlw.ems.dao.impl数据访问实现类

• com.wlw.ems.service 业务逻辑接口

• com.wlw.ems.service.impl 业务逻辑实现类

• com.wlw.ems.controller 控制器

• com.wlw.ems.filter 过滤器

2.2项目资源引入

创建EMS项目,导入相关jar文件。

​ commons-d butils-1.7.jar

​ druid-1.1.5.jar

​ jstl.jar

​ standard.jar

​ ValidateCode.jar

​ mysql-connector-java-5.1.25-bin.jar

2.3数据库创建

#员工信息表
CREATE TABLE emp(
	id INT PRIMARY KEY AUTO_INCREMENT, 
    NAME VARCHAR(20) NOT NULL, 
    salary DOUBLE NOT NULL, 
    age INT NOT NULL

)CHARSET=utf8;
#管理员表
CREATE TABLE empManager(
	username VARCHAR(20) NOT NULL,
    PASSWORD VARCHAR(20) NOT NULL 
)CHARSET=utf8;

3.项目开发

database.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/ems?useUnicode=true&characterEncoding=UTF-8
username=root
password=123456
initialSize=10
maxActive=20
minIdle=5
maxWait=3000

DbUtils

package com.wlw.utils;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class DbUtils {
    private static DruidDataSource dataSource;//连接池
    private static final ThreadLocal<Connection> ThreadLocal =  new ThreadLocal<Connection>();//线程,控制事务,确保一个事务是同一个连接
    static {
        Properties properties = new Properties();
        InputStream is = DbUtils.class.getResourceAsStream("/database.properties");
        try {
            properties.load(is);
            dataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static Connection getConnection(){
        Connection connection = ThreadLocal.get();
        try {
            if(connection == null){
                connection = dataSource.getConnection();
                ThreadLocal.set(connection);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }

    public static void begin(){
        Connection connection = null;
        try {
            connection = getConnection();
            connection.setAutoCommit(false);//设置为手动提交
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    public static void commit(){
        Connection connection = null;
        try {
            connection = getConnection();
            connection.commit();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            CloseAll(connection,null,null);
        }
    }
    public static void rollback(){
        Connection connection = null;
        try {
            connection = getConnection();
            connection.rollback();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            CloseAll(connection,null,null);
        }
    }

    public static void CloseAll(Connection connection, Statement statement, ResultSet resultSet){
        try {
            if(resultSet != null){
                resultSet.close();
            }
            if(statement != null){
                statement.close();
            }
            if(connection != null){
                connection.close();
                ThreadLocal.remove();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

}

Emp

package com.wlw.enity;

public class Emp {
    private int id;
    private String name;
    private double salary;
    private int age;

    public Emp() {}

    public Emp(String name, double salary, int age) {
        this.name = name;
        this.salary = salary;
        this.age = age;
    }

    public Emp(int id, String name, double salary, int age) {
        this.id = id;
        this.name = name;
        this.salary = salary;
        this.age = age;
    }

    @Override
    public String toString() {
        return "emp{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", salary=" + salary +
                ", age=" + age +
                '}';
    }

    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 double getSalary() {
        return salary;
    }

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

    public int getAge() {
        return age;
    }

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

EmpManager

package com.wlw.enity;

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

    public EmpManager() {}

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

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

    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;
    }
}

Page

package com.wlw.enity;

public class Page {
    private Integer pageIndex;//页码

    private Integer pageSize;//页大小  显示多少行数据

    private Integer totalCounts;//数据的总行数

    private Integer totalPages;//总页数

    private Integer startRows;//起始行

    public Page(Integer pageIndex) {
        this(pageIndex, 5);
    }

    public Page(Integer pageIndex, Integer pageSize) {
        this.pageIndex = pageIndex;
        this.pageSize = pageSize;
        this.setStartRows((pageIndex - 1) * pageSize);//计算起始行
    }


    public Integer getPageIndex() {

        return pageIndex;
    }

    public void setPageIndex(Integer pageIndex)
    {
        this.pageIndex = pageIndex;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }

    public Integer getTotalCounts() {
        return totalCounts;
    }

    public void setTotalCounts(Integer totalCounts) { //设置总条数时,设置总页数
        this.totalCounts = totalCounts;
        this.setTotalPages(totalCounts % pageSize == 0? totalCounts/pageSize : totalCounts/pageSize +1);
    }

    public Integer getTotalPages() {
        return totalPages;
    }

    public void setTotalPages(Integer totalPages) {
        this.totalPages = totalPages;
    }

    public Integer getStartRows() {
        return startRows;
    }

    public void setStartRows(Integer startRows) {
        this.startRows = startRows;
    }
}

EmpManagerDao

package com.wlw.dao;

import com.wlw.enity.EmpManager;

public interface EmpManagerDao {
    public EmpManager select(String username);
}

EmpManagerDaoImpl

package com.wlw.dao.impl;

import com.wlw.dao.EmpManagerDao;
import com.wlw.enity.EmpManager;
import com.wlw.utils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;

import java.sql.SQLException;

public class EmpManagerDaoImpl implements EmpManagerDao {
    private QueryRunner queryRunner = new QueryRunner();

    @Override
    public EmpManager select(String username) {
        try {
            EmpManager empManager = queryRunner.query(DbUtils.getConnection(), "select * from empManager where username=?;"
                    , new BeanHandler<EmpManager>(EmpManager.class),username);
            return empManager;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
}

EmpDao

package com.wlw.dao;

import com.wlw.enity.Emp;
import com.wlw.enity.Page;

import java.util.List;

public interface EmpDao {
    public List<Emp> select(Page page);
    public long selectCount();
    public int delete(int id);
    public int insert(Emp emp);
    public Emp select(int id);
    public int update(Emp emp);
}

EmpDaoImpl

package com.wlw.dao.impl;

import com.wlw.dao.EmpDao;
import com.wlw.enity.Emp;
import com.wlw.enity.Page;

import com.wlw.utils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;

import java.sql.SQLException;
import java.util.ArrayList;

import java.util.List;

public class EmpDaoImpl implements EmpDao {
    private QueryRunner queryRunner = new QueryRunner();
    @Override
    public List<Emp> select(Page page) {
        List<Emp> emps = new ArrayList<>();
        try {
            emps = queryRunner.query(DbUtils.getConnection(),"select * from emp limit ?,?;"
                    ,new BeanListHandler<Emp>(Emp.class),page.getStartRows(),page.getPageSize());
            return emps;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    public long selectCount() {
        try {
            long count = queryRunner.query(DbUtils.getConnection(),"select count(*) from emp;"
                    ,new ScalarHandler<>());
            return count;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }

    @Override
    public int delete(int id) {
        try {
            int result = queryRunner.update(DbUtils.getConnection(), "delete from emp where id=?;", id);
            return result;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }

    @Override
    public int insert(Emp emp) {
        try {
            int result = queryRunner.update(DbUtils.getConnection(), "insert into emp (name,salary,age) values (?,?,?);"
                    , emp.getName(), emp.getSalary(), emp.getAge());
            return result;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }

    @Override
    public Emp select(int id) {
        try {
            Emp emp = queryRunner.query(DbUtils.getConnection(), "select * from emp where id=?;"
                    , new BeanHandler<Emp>(Emp.class), id);
            return emp;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    public int update(Emp emp) {
        try {
            int result = queryRunner.update(DbUtils.getConnection(), "update emp set name=?,salary=?,age=? where id=?;"
                    , emp.getName(), emp.getSalary(), emp.getAge(),emp.getId());
            return result;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }
}

EmpManagerService

package com.wlw.service;

import com.wlw.enity.EmpManager;

public interface EmpManagerService {
    public EmpManager login(String username,String password);
}

EmpManagerServiceImpl

package com.wlw.service.impl;

import com.wlw.dao.EmpManagerDao;
import com.wlw.dao.impl.EmpManagerDaoImpl;
import com.wlw.enity.EmpManager;
import com.wlw.service.EmpManagerService;
import com.wlw.utils.DbUtils;

public class EmpManagerServiceImpl implements EmpManagerService {
    private EmpManagerDao empManagerDao = new EmpManagerDaoImpl();
    @Override
    public EmpManager login(String username, String password) {
        EmpManager empManager = null;
        try {
            DbUtils.begin();
            EmpManager temp = empManagerDao.select(username);
            if(temp != null){
                if(temp.getPassword().equals(password)){//判断密码
                    empManager = temp;
                }
            }
            DbUtils.commit();
        } catch (Exception e) {
            DbUtils.rollback();
            e.printStackTrace();
        }
        return empManager;
    }
}

EmpService

package com.wlw.service;

import com.wlw.enity.Emp;
import com.wlw.enity.Page;

import java.util.List;

public interface EmpService {
    public List<Emp> showAllEmpByPage(Page page);
    public int deleteEmp(int id);
    public int addEmp(Emp emp);
    public Emp selectEmpById(int id);
    public int modifyEmp(Emp emp);
}

EmpServiceImpl

package com.wlw.service.impl;

import com.wlw.dao.EmpDao;
import com.wlw.dao.impl.EmpDaoImpl;
import com.wlw.enity.Emp;
import com.wlw.enity.Page;
import com.wlw.service.EmpService;
import com.wlw.utils.DbUtils;

import java.util.ArrayList;
import java.util.List;

public class EmpServiceImpl implements EmpService {
    private EmpDao empDao = new EmpDaoImpl();
    @Override
    public List<Emp> showAllEmpByPage(Page page) {
        List<Emp> emps = null;
        try {
            DbUtils.begin();
            long count = empDao.selectCount();
            page.setTotalCounts((int)count);//赋值总条数,进而设置了总页数

            emps = empDao.select(page); //查询
            DbUtils.commit();
        } catch (Exception e) {
            DbUtils.rollback();
            e.printStackTrace();
        }
        return emps;
    }

    @Override
    public int deleteEmp(int id) {
        int result = 0;
        try {
            DbUtils.begin();
            result = empDao.delete(id);
            DbUtils.commit();
        } catch (Exception e) {
            DbUtils.rollback();
            e.printStackTrace();
        }
        return result;
    }

    @Override
    public int addEmp(Emp emp) {
        int result = 0;
        try {
            DbUtils.begin();
            result = empDao.insert(emp);
            DbUtils.commit();
        } catch (Exception e) {
            DbUtils.rollback();
            e.printStackTrace();
        }
        return result;
    }

    @Override
    public Emp selectEmpById(int id) {
        Emp emp = null;
        try {
            DbUtils.begin();
            emp = empDao.select(id);
            DbUtils.commit();
        } catch (Exception e) {
            DbUtils.rollback();
            e.printStackTrace();
        }
        return emp;
    }

    @Override
    public int modifyEmp(Emp emp) {
        int result = 0;
        try {
            DbUtils.begin();
            result = empDao.update(emp);
            DbUtils.commit();
        } catch (Exception e) {
            DbUtils.rollback();
            e.printStackTrace();
        }
        return result;
    }
}

CheckFilter

package com.wlw.filter;

import com.wlw.enity.EmpManager;

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

@WebFilter(value = "/manager/safe/*")
public class CheckFilter implements Filter {
    public void destroy() {
    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        //向下转型
        HttpServletRequest request = (HttpServletRequest)req;
        HttpServletResponse response = (HttpServletResponse)resp;

        HttpSession session = request.getSession();
        EmpManager empManager = (EmpManager) session.getAttribute("empManager");
        if(empManager != null){//已登录  , 管理员登录之后就保存了登录信息
            chain.doFilter(request, response);
        }else { //未登录
            response.sendRedirect(request.getContextPath()+"/login.jsp");//重定向
        }
    }

    public void init(FilterConfig config) throws ServletException {
    }
}

EncodingFilter

package com.wlw.filter;

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

@WebFilter(value = "/manager/*")
public class EncodingFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {}

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        //处理乱码
        servletRequest.setCharacterEncoding("UTF-8");
        servletResponse.setContentType("text/html;charset=utf-8");
        //放行
        filterChain.doFilter(servletRequest,servletResponse);
    }
    @Override
    public void destroy() {}
}

3.1登录功能EmpManagerLoginController

package com.wlw.controller;

import com.wlw.enity.EmpManager;
import com.wlw.service.EmpManagerService;
import com.wlw.service.impl.EmpManagerServiceImpl;

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

@WebServlet(name = "EmpManagerLoginController",value = "/manager/empManagerLogin")
public class EmpManagerLoginController extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //过滤器里要做 处理乱码, 权限验证
        //1.收参
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String inputVcode = request.getParameter("inputVcode");
        //2.验证码校验
        HttpSession session = request.getSession();
        String codes = (String)session.getAttribute("codes");

        if(inputVcode != null && inputVcode.equalsIgnoreCase(codes)){ //验证码正确
            //执行业务,查询
            EmpManagerService empManagerService =new EmpManagerServiceImpl();
            EmpManager empManager = empManagerService.login(username, password);
            if(empManager != null){//登录成功
                //保存登录信息,在session作用域(便于权限验证)
                session.setAttribute("empManager",empManager);

                //跳转到查询所有员工的Controller
                response.sendRedirect(request.getContextPath()+"/manager/safe/showAllEmp");
            }else {//登录失败
                response.sendRedirect(request.getContextPath()+"/login.jsp");
            }
        }else { //验证码失败
            response.sendRedirect(request.getContextPath()+"/login.jsp");
        }

    }

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

3.2验证码CreateCodeController

package com.wlw.controller;

import cn.dsna.util.images.ValidateCode;

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

@WebServlet(name = "CreateCodeController",value = "/createCode")
public class CreateCodeController extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ValidateCode code = new ValidateCode(200,30,4,20);
        String codes = code.getCode();//获取验证码的内容,并存入session,方便对比校验
        request.getSession().setAttribute("codes",codes);

       code.write(response.getOutputStream());//传给客户端
    }

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

3.3 分页查询(Controller)ShowAllEmpController

package com.wlw.controller;

import com.wlw.enity.Emp;
import com.wlw.enity.Page;
import com.wlw.service.EmpService;
import com.wlw.service.impl.EmpServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;

@WebServlet(name = "ShowAllEmpController",value = "/manager/safe/showAllEmp")
public class ShowAllEmpController extends HttpServlet {
   protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       //过滤器里要做 处理乱码, 权限验证

       String pageIndex = request.getParameter("pageIndex");
       if(pageIndex == null){ //第一次登录过来 这个参数为null
           pageIndex = "1";
       }
       Page page = new Page(Integer.valueOf(pageIndex));
       //执行查询
       EmpService empService = new EmpServiceImpl();
       List<Emp> emps = empService.showAllEmpByPage(page);//分页查询

       request.setAttribute("emps",emps);//存入request域,方便jsp文件通过el jstl 获取内容
       request.setAttribute("page",page);//为了实现上一页,下一页

       //转发
       request.getRequestDispatcher("/emplist.jsp").forward(request,response);
   }

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

3.5新增InsertEmpController

package com.wlw.controller;

import com.wlw.enity.Emp;
import com.wlw.service.EmpService;
import com.wlw.service.impl.EmpServiceImpl;

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

@WebServlet(name = "InsertEmpController" ,value = "/manager/safe/insertEmp")
public class InsertEmpController extends HttpServlet {
   protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       String name = request.getParameter("name");
       Double salary = Double.valueOf(request.getParameter("salary"));
       Integer age = Integer.valueOf(request.getParameter("age"));
       Emp emp = new Emp(name,salary,age);

       EmpService empService = new EmpServiceImpl();
       empService.addEmp(emp);//添加

       //添加完,重定向到查询,重新查询一遍
       response.sendRedirect(request.getContextPath()+"/manager/safe/showAllEmp");
   }

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

3.6修改 ShowEmpController 、UpdateEmpController

package com.wlw.controller;

import com.wlw.enity.Emp;
import com.wlw.service.EmpService;
import com.wlw.service.impl.EmpServiceImpl;

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

@WebServlet(name = "ShowEmpController" ,value = "/manager/safe/showEmp")
public class ShowEmpController extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //收参
        Integer id = Integer.valueOf(request.getParameter("id"));

        EmpService empService = new EmpServiceImpl();
        Emp emp = empService.selectEmpById(id);//查询单个

        request.setAttribute("emp",emp); //存入request域,方便jsp获取信息
        //转发
        request.getRequestDispatcher("/updateEmp.jsp").forward(request,response);
    }

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

package com.wlw.controller;

import com.wlw.enity.Emp;
import com.wlw.service.EmpService;
import com.wlw.service.impl.EmpServiceImpl;

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

@WebServlet(name = "UpdateEmpController",value = "/manager/safe/updateEmp")
public class UpdateEmpController extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Integer id = Integer.valueOf(request.getParameter("id"));
        String name = request.getParameter("name");
        Double salary = Double.valueOf( request.getParameter("salary"));
        Integer age = Integer.valueOf(request.getParameter("age"));
        Emp emp = new Emp(id,name,salary,age);

        EmpService empService = new EmpServiceImpl();
        empService.modifyEmp(emp); //修改

        //修改完,重定向到查询,重新查询一遍
        response.sendRedirect(request.getContextPath()+"/manager/safe/showAllEmp");
    }

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

3.7删除DeleteEmpController

package com.wlw.controller;

import com.wlw.service.EmpService;
import com.wlw.service.impl.EmpServiceImpl;

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

@WebServlet(name = "DeleteEmpController" ,value = "/manager/safe/deleteEmp")
public class DeleteEmpController extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //收参
        String id = request.getParameter("id");

        EmpService empService = new EmpServiceImpl();
        empService.deleteEmp(Integer.valueOf(id)); //删除

        //删除完,重定向到查询,重新查询一遍
        response.sendRedirect(request.getContextPath()+"/manager/safe/showAllEmp");
    }

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

login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>管理员登录页面</title>
    <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/style.css"/>
</head>

<body>
<div id="wrap">
    <div id="top_content">
        <div id="header">
            <div id="rightheader">
                <p>
                    2009/11/20 <br/>
                </p>
            </div>
            <div id="topheader">
                <h1 id="title">
                    <a href="#">main</a>
                </h1>
            </div>
            <div id="navigation"></div>
        </div>
        <div id="content">
            <p id="whereami"></p>
            <h1>login</h1>
            <form action="${pageContext.request.contextPath}/manager/empManagerLogin" method="post">
                <table cellpadding="0" cellspacing="0" border="0"
                       class="form_table">
                    <tr>
                        <td valign="middle" align="right">username:</td>
                        <td valign="middle" align="left"><input type="text"
                                                                class="inputgri" name="username"/></td>
                    </tr>
                    <tr>
                        <td valign="middle" align="right">password:</td>
                        <td valign="middle" align="left"><input type="password"
                                                                class="inputgri" name="password"/></td>
                    </tr>
                    <tr>
                        <td valign="middle" align="right">validateCode:</td>
                        <td valign="middle" align="left"><input type="text"
                                                                class="inputgri" name="inputVcode"/><img src="${pageContext.request.contextPath}/createCode" /></td>
                    </tr>
                </table>
                <p>
                    <input type="submit" class="button" value="Submit &raquo;"/>
                </p>
            </form>
        </div>
    </div>
    <div id="footer">
        <div id="footer_bg">ABC@126.com</div>
    </div>
</div>
</body>
</html>

emplist.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>查询所有员工</title>
    <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/style.css"/>
</head>
<body>
<div id="wrap">
    <div id="top_content">
        <div id="header">
            <div id="rightheader">
                <p>
                    2009/11/20
                    <br/>
                </p>
            </div>
            <div id="topheader">
                <h1 id="title">
                    <a href="#">main</a>
                </h1>
            </div>
            <div id="navigation">
            </div>
        </div>
        <div id="content">
            <p id="whereami">
            </p>
            <h1>
                Welcome!
            </h1>
            <table class="table">
                <tr class="table_header">
                    <td>
                        ID
                    </td>
                    <td>
                        Name
                    </td>
                    <td>
                        Salary
                    </td>
                    <td>
                        Age
                    </td>
                    <td>
                        Operation
                    </td>
                </tr>
                <c:forEach items="${emps}" var="emp" varStatus="e">
                    <c:if test="${e.count % 2  !=0}">
                        <tr class="row1">
                    </c:if>
                    <c:if test="${e.count % 2  ==0}">
                        <tr class="row2">
                    </c:if>
                        <td>
                                ${emp.id}
                        </td>
                        <td>
                                ${emp.name}
                        </td>
                        <td>
                                ${emp.salary}
                        </td>
                        <td>
                                ${emp.age}
                        </td>
                        <td>
                            <a href="<c:url  context='${pageContext.request.contextPath}' value='/manager/safe/deleteEmp?id=${emp.id}'/>">delete emp</a>&nbsp;<a href="<c:url context='${pageContext.request.contextPath}' value='/manager/safe/showEmp?id=${emp.id}'/>">update emp</a>
                        </td>
                    </tr>
                </c:forEach>
                <tr>
                    <td colspan="5" align="center">
                        <a href="<c:url context='${pageContext.request.contextPath}' value='/manager/safe/showAllEmp?pageIndex=1'/>">首页</a>

                        <c:if test="${page.pageIndex > 1}">
                            <a href="<c:url context='${pageContext.request.contextPath}' value='/manager/safe/showAllEmp?pageIndex=${page.pageIndex - 1}' />">上一页</a>
                        </c:if>
                        <c:if test="${page.pageIndex==1}">
                            <a>上一页</a>
                        </c:if>

                        <c:if test="${page.pageIndex < page.totalPages}">
                            <a href="<c:url context='${pageContext.request.contextPath}' value='/manager/safe/showAllEmp?pageIndex=${page.pageIndex + 1}' />">下一页</a>
                        </c:if>
                        <c:if test="${page.pageIndex == page.totalPages}">
                            <a>下一页</a>
                        </c:if>

                        <a href="<c:url context='${pageContext.request.contextPath}' value='/manager/safe/showAllEmp?pageIndex=${page.totalPages}'/>">尾页</a>
                    </td>
                </tr>
            </table>
            <p>
                <input type="button" class="button" value="Add Employee" οnclick="location='${pageContext.request.contextPath}/addEmp.jsp'"/>
            </p>
        </div>
    </div>
    <div id="footer">
        <div id="footer_bg">
            ABC@126.com
        </div>
    </div>
</div>
</body>
</html>

addEmp.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>修改员工页面</title>
    <link rel="stylesheet" type="text/css"
          href="${pageContext.request.contextPath}/css/style.css" />
</head>

<body>
<div id="wrap">
    <div id="top_content">
        <div id="header">
            <div id="rightheader">
                <p>
                    2009/11/20
                    <br />
                </p>
            </div>
            <div id="topheader">
                <h1 id="title">
                    <a href="#">Main</a>
                </h1>
            </div>
            <div id="navigation">
            </div>
        </div>
        <div id="content">
            <p id="whereami">
            </p>
            <h1>
                add Emp info:
            </h1>
            <form action="${pageContext.request.contextPath}/manager/safe/insertEmp" method="post">
                <table cellpadding="0" cellspacing="0" border="0"
                       class="form_table">
                    <tr>
                        <td valign="middle" align="right">
                            name:
                        </td>
                        <td valign="middle" align="left">
                            <input type="text" class="inputgri" name="name" />
                        </td>
                    </tr>
                    <tr>
                        <td valign="middle" align="right">
                            salary:
                        </td>
                        <td valign="middle" align="left">
                            <input type="text" class="inputgri" name="salary" />
                        </td>
                    </tr>
                    <tr>
                        <td valign="middle" align="right">
                            age:
                        </td>
                        <td valign="middle" align="left">
                            <input type="text" class="inputgri" name="age" />
                        </td>
                    </tr>
                </table>
                <p>
                    <input type="submit" class="button" value="Confirm" />
                </p>
            </form>
        </div>
    </div>
    <div id="footer">
        <div id="footer_bg">
            ABC@126.com
        </div>
    </div>
</div>
</body>
</html>

updateEmp.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>修改员工信息</title>
    <link rel="stylesheet" type="text/css"
          href="${pageContext.request.contextPath}/css/style.css" />
</head>

<body>
<div id="wrap">
    <div id="top_content">
        <div id="header">
            <div id="rightheader">
                <p>
                    2009/11/20
                    <br />
                </p>
            </div>
            <div id="topheader">
                <h1 id="title">
                    <a href="#">Main</a>
                </h1>
            </div>
            <div id="navigation">
            </div>
        </div>
        <div id="content">
            <p id="whereami">
            </p>
            <h1>
                update Emp info:
            </h1>
            <form action="${pageContext.request.contextPath}/manager/safe/updateEmp" method="post">
                <table cellpadding="0" cellspacing="0" border="0"
                       class="form_table">
                    <tr>
                        <td valign="middle" align="right">
                            id:
                        </td>
                        <td valign="middle" align="left">
                            <input type="text" class="inputgri" name="id" value="${emp.id}" readonly/>
                        </td>
                    </tr>
                    <tr>
                        <td valign="middle" align="right">
                            name:
                        </td>
                        <td valign="middle" align="left">
                            <input type="text" class="inputgri" name="name" value="${emp.name}"/>
                        </td>
                    </tr>
                    <tr>
                        <td valign="middle" align="right">
                            salary:
                        </td>
                        <td valign="middle" align="left">
                            <input type="text" class="inputgri" name="salary" value="${emp.salary}"/>
                        </td>
                    </tr>
                    <tr>
                        <td valign="middle" align="right">
                            age:
                        </td>
                        <td valign="middle" align="left">
                            <input type="text" class="inputgri" name="age" value="${emp.age}"/>
                        </td>
                    </tr>
                </table>
                <p>
                    <input type="submit" class="button" value="Confirm" />
                </p>
            </form>
        </div>
    </div>
    <div id="footer">
        <div id="footer_bg">
            ABC@126.com
        </div>
    </div>
</div>
</body>
</html>

Web开发总结

开发流程

  • 在Web开发流程中,遵守以下开发顺序
    • DAO
      • table
      • entity
      • DAO接口
      • DAO实现
    • Service
      • Service接口
      • Service实现(调用DAO实现类, 并控制事务)
    • Controller(处理请求的Servlet)
      • [收集请求中的数据]
      • 调用业务功能(Service实现类)
      • [在相应合适的作用域中存储数据]
      • 流程跳转(forward I sendRedirect)–> *.jsp
    • JSP
      • [在作用域中获取数据]
      • 使用EL+JSTL将数据嵌套在HTML标签中
    • Filter
      • EncodingFilter
      • CheckFilter
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悬浮海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值