Spring+Mybatis+Servlet開發(fā)人員管理系統(tǒng)

三層架構(gòu)

  • 持久層--Mybatis
  • 表現(xiàn)層--Servlet + Jsp
  • Spring--管理對(duì)象、切面處理

基于MVC模式

  • 視圖--Jsp

  • 模型--JavaBean

  • 控制器--Servlet+JavaBean


    圖片.png
  • 核心控制器
    1、Servlet對(duì)象由Web容器管理
    2、Service對(duì)象由IOC容器管理

圖片.png
  • 持久層實(shí)現(xiàn)不用創(chuàng)建類,而是通過Mybatis配置文件實(shí)現(xiàn)的。
  • controller通過注解配置servlet

部門管理

步驟

  • 實(shí)體類
  • Dao接口與Mybatis配置文件
  • Service接口與其實(shí)現(xiàn)類
  • 控制器
  • 頁面

日志模塊

采用AOP切面處理

  • applicationContext.xml
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx.xsd">



    <!--Spirng整合Mybatis-->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql:///sm?characterEncoding=utf-8"></property>
        <property name="username" value="root"></property>
        <property name="password" value="root"></property>

    </bean>

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <!--配置后直接使用類型,不用寫包的全路徑-->
        <!--實(shí)體類可以用簡(jiǎn)稱-->
        <property name="typeAliasesPackage" value="com.alan.entity"></property>
    </bean>

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.alan.dao"></property>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
    </bean>


    <!--聲明式事務(wù)-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

    <!--通知設(shè)置-->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="get*" read-only="true"/>
            <tx:method name="find*" read-only="true"/>
            <tx:method name="search*" read-only="true"/>
            <tx:method name="*" propagation="REQUIRED"/>
        </tx:attributes>
    </tx:advice>


    <!--織入-->
    <aop:config >
        <!--切入點(diǎn)設(shè)置-->
        <aop:pointcut id="txPointcut" expression="execution(* com.alan.service.*.*(..))"></aop:pointcut>
        <!--切入點(diǎn)與通知進(jìn)行關(guān)聯(lián)-->
        <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"></aop:advisor>
    </aop:config>


    <!--啟動(dòng)全局掃描-->
    <context:component-scan base-package="com.alan"></context:component-scan>
    <aop:aspectj-autoproxy></aop:aspectj-autoproxy>

</beans>
  • mybatis 相關(guān) xml
  • DepartmentDao.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.4//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.alan.dao.DepartmentDao">
<!--這里可以不寫全路徑,應(yīng)為在spring中已經(jīng)配置了-->
<resultMap id="resultMap" type="Department">
    <!--主鍵的話用id標(biāo)簽-->
    <id property="id" column="id" javaType="Integer"></id>
    <!--其他的用result標(biāo)簽-->
    <result property="name" column="name" javaType="String"></result>
    <result property="address" column="address" javaType="String"></result>
</resultMap>

<!--設(shè)置參數(shù)和自增-->
<insert id="insert" parameterType="Department" useGeneratedKeys="true">
        insert into department(name,address) values (#{name},#{address})
    </insert>

<delete id="delete" parameterType="Integer">
        delete from department where id = #{id}
    </delete>

<update id="update" parameterType="Department">
        update department set name=#{name},address=#{address} where id = #{id}
    </update>

<select id="selectById" parameterType="Integer" resultMap="resultMap">
        select * from department where id = #{id}
    </select>

<select id="selectAll" resultMap="resultMap">
        select * from department
    </select>
</mapper>
  • LogDao.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.4//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.alan.dao.LogDao">
<!--這里可以不寫全路徑,應(yīng)為在spring中已經(jīng)配置了-->
<resultMap id="resultMap" type="Log">
    <!--其他的用result標(biāo)簽-->
    <result property="oprTime" column="opr_time" javaType="java.util.Date"></result>
    <result property="type" column="type" javaType="String"></result>
    <result property="operator" column="operator" javaType="String"></result>
    <result property="moudle" column="moudle" javaType="String"></result>
    <result property="operation" column="operation" javaType="String"></result>
    <result property="result" column="result" javaType="String"></result>
</resultMap>


    <insert id="insert" parameterType="Log" >
        insert into log(opr_time,type,operator,moudle,operation,result)
        values(#{oprTime},#{type},#{operator},#{moudle},#{operation},#{result})
    </insert>

    <select id="selectByType" parameterType="String" resultMap="resultMap">
        select * from log where type=#{type} order by opr_time desc
    </select>
</mapper>
  • SelfDao.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.4//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.alan.dao.SelfDao">

    <select id="selectByAccount" parameterType="String" resultMap="com.alan.dao.StaffDao.resultMap">
        select * from staff where account=#{account}
    </select>

</mapper>
  • StaffDao.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.4//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.alan.dao.StaffDao">
<!--這里可以不寫全路徑,應(yīng)為在spring中已經(jīng)配置了-->
<resultMap id="resultMap" type="Staff">
    <!--主鍵的話用id標(biāo)簽-->
    <id property="id" column="id" javaType="Integer"></id>
    <!--其他的用result標(biāo)簽-->
    <result property="account" column="account" javaType="String"></result>
    <result property="password" column="password" javaType="String"></result>
    <result property="status" column="status" javaType="String"></result>
    <result property="did" column="did" javaType="Integer"></result>
    <result property="name" column="name" javaType="String"></result>
    <result property="sex" column="sex" javaType="String"></result>
    <result property="idNumber" column="id_number" javaType="String"></result>
    <result property="workTime" column="work_time" javaType="Date"></result>
    <result property="leaveTime" column="leave_time" javaType="Date"></result>
    <result property="bornDate" column="born_date" javaType="Date"></result>
    <result property="info" column="info" javaType="String"></result>
    <!--配置多對(duì)一關(guān)聯(lián),通過部門映射表中的select語句進(jìn)行查詢-->
    <association property="department" column="did" javaType="Department" select="com.alan.dao.DepartmentDao.selectById" ></association>

</resultMap>

    <insert id="insert" parameterType="Staff" useGeneratedKeys="true">
        insert into staff(account,password,status,did,name,sex,id_number,work_time,leave_time,born_date,info)
        values(#{account},#{password},#{status},#{did},#{name},#{sex},#{idNumber},#{workTime},#{leaveTime},#{bornDate},#{info})
    </insert>
    <delete id="delete" parameterType="Integer">
        delete from staff where id=#{id}
    </delete>
    <update id="update" parameterType="Staff">
        update staff set account=#{account},password=#{password},status=#{status},
        did=#{did},name=#{name},sex=#{sex},id_number=#{idNumber},
        work_time=#{workTime},leave_time=#{leaveTime},born_date=#{bornDate},info=#{info} where id=#{id}
    </update>
    <select id="selectById" parameterType="Integer" resultMap="resultMap">
        select * from staff where id=#{id}
    </select>
    <select id="selectAll" resultMap="resultMap">
        select * from staff
    </select>

</mapper>
  • DispatcherServlet 中央控制器
package com.alan.global;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class DispatcherServlet extends GenericServlet {

    private  ApplicationContext applicationContext ;


    public void init() throws ServletException {
        applicationContext = new ClassPathXmlApplicationContext("spring.xml");
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {

        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;

        /**
         * staff/add.do   login.do
         * staffController
         */


        //或者請(qǐng)求的url路徑,將最前面的/截取掉
        String path  =  request.getServletPath().substring(1);
        String beanName ;
        String methodName;
        int index = path.indexOf('/');
        //包含反斜杠
        if(index != -1){
            beanName= path.substring(0,index)+"Controller"; //staffController
            methodName = path.substring(index+1,path.indexOf(".do"));
        }else {
            beanName = "selfController"; //只有特殊的這一個(gè)
            methodName = path.substring(0,path.indexOf(".do"));
        }

        System.out.println("path:"+path+",beanName:"+beanName+",methodName"+ methodName);

        Object object = applicationContext.getBean(beanName);
        try {
            Method method = object.getClass().getMethod(methodName, HttpServletRequest.class, HttpServletResponse.class);
            method.invoke(object,request,response);
        }catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.getTargetException();
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        }


    }


}
  • 登陸過濾器
package com.alan.global;

import com.alan.entity.Staff;

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

/**
 * 登陸過濾器
 */
public class LoginFilter 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;

        String path =  request.getServletPath();
        if(path.toLowerCase().indexOf("login") != -1){
            //包含login的url,直接放行。不進(jìn)行過濾處理
            chain.doFilter(request,response);
        }else {
            Staff staff = (Staff) request.getSession().getAttribute("USER");
            if(staff != null){
                //session中有員工信息,直接放行,不進(jìn)行過濾處理
                chain.doFilter(request,response);
            }else {
                //強(qiáng)制跳轉(zhuǎn)回登陸界面
                response.sendRedirect(request.getContextPath()+"/toLogin.do");
            }
        }

    }

    public void init(FilterConfig config) throws ServletException {

    }

}
  • AOP切面類
package com.alan.global;


import com.alan.entity.Log;
import com.alan.entity.Staff;
import com.alan.service.LogService;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.servlet.http.HttpServletRequest;

/**
 * 記錄日志的切面類
 */
//@Component泛指各種組件,就是說當(dāng)我們的類不屬于各種歸類的時(shí)候(不屬于@Controller、@Services等的時(shí)候),我們就可以使用@Component來標(biāo)注這個(gè)類。
@Component
//aspect切面注解
@Aspect
public class LogAdvice {

    @Autowired
    private LogService logService;

    //配置運(yùn)行日志,屏蔽掉SelfController,同時(shí)屏蔽to開頭的例如toAdd等
    @After("execution(* com.alan.controller.*.*(..)) &&!execution(* com.alan.controller.SelfController.*(..)) && !execution(* com.alan.controller.*.to*(..))")
    public void operationLog(JoinPoint joinPoint){
        Log log = new Log();
        //模塊名稱賦值為類名
        log.setMoudle(joinPoint.getTarget().getClass().getSimpleName());
        //當(dāng)前操作賦值為方法名
        log.setOperation(joinPoint.getSignature().getName());
        //當(dāng)前方法的第一個(gè)參數(shù)為request
        HttpServletRequest request = (HttpServletRequest) joinPoint.getArgs()[0];
        Staff staff = (Staff) request.getSession().getAttribute("USER");
        //設(shè)置操作人
        log.setOperator(staff.getAccount());
        log.setResult("成功");
        logService.addOperationLog(log);

    }

    //配置系統(tǒng)日志,只有出現(xiàn)異常后進(jìn)行記錄,配置throwing
    @AfterThrowing(throwing = "e" ,pointcut = "execution(* com.alan.controller.*.*(..)) && !execution(* com.alan.controller.SelfController.*(..))")
    public void systemLog(JoinPoint joinPoint ,Throwable e){

        Log log = new Log();
        //模塊名稱賦值為類名
        log.setMoudle(joinPoint.getTarget().getClass().getSimpleName());
        //當(dāng)前操作賦值為方法名
        log.setOperation(joinPoint.getSignature().getName());
        //當(dāng)前方法的第一個(gè)參數(shù)為request
        HttpServletRequest request = (HttpServletRequest) joinPoint.getArgs()[0];
        Staff staff = (Staff) request.getSession().getAttribute("USER");
        log.setOperator(staff.getAccount());
        //將異常對(duì)象的名稱傳入到LOG中
        log.setResult(e.getClass().getSimpleName());
        logService.addSystemLog(log);
    }


    //配置登陸日志
    @After("execution(* com.alan.controller.SelfController.login(..))")
    public void loginLog(JoinPoint joinPoint){
        log(joinPoint);
    }


    //配置退出日志,采用前置通知
    @Before("execution(* com.alan.controller.SelfController.logout(..))")
    public void logoutLog(JoinPoint joinPoint){

        log(joinPoint);
    }


    private void log(JoinPoint joinPoint){

        Log log = new Log();
        //模塊名稱賦值為類名
        log.setMoudle(joinPoint.getTarget().getClass().getSimpleName());
        //當(dāng)前操作賦值為方法名
        log.setOperation(joinPoint.getSignature().getName());
        //當(dāng)前方法的第一個(gè)參數(shù)為request
        HttpServletRequest request = (HttpServletRequest) joinPoint.getArgs()[0];
        Staff staff = (Staff) request.getSession().getAttribute("USER");
        if(staff == null){
            log.setOperator(request.getParameter("account"));
            log.setResult("失敗");
        }else {
            log.setOperator(staff.getAccount());
            log.setResult("成功");
        }
        logService.addLoginLog(log);
    }
}
  • DepartmentController
package com.alan.controller;


import com.alan.entity.Department;
import com.alan.service.DepartmentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

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.util.List;

@Controller("departmentController")
public class DepartmentController extends HttpServlet {


    @Autowired
    private DepartmentService departmentService;

    public void list(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        List<Department> list = departmentService.getAll();
        //  Department department = departmentService.get(1);
        request.setAttribute("LIST",list);
        request.getRequestDispatcher("../department_list.jsp").forward(request,response);
    }


    public void toAdd(HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {

        request.getRequestDispatcher("../department_add.jsp").forward(request,response);
    }

    public void add(HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {

        //從request獲取參數(shù)值
        String name = request.getParameter("name");
        String address = request.getParameter("address");
        //將值復(fù)制給Department對(duì)象
        Department department = new Department();
        department.setName(name);
        department.setAddress(address);
        //插入表中
        departmentService.add(department);
        //返回list.do,不需要傳值,使用重定向
        response.sendRedirect("list.do");

    }


    public void toEdit(HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {

        String id = request.getParameter("id");
        Department department  = new Department();
        //根據(jù)id進(jìn)行查詢
        department = departmentService.get(Integer.parseInt(id));
        //將Department對(duì)象回傳到更改頁面
        request.setAttribute("OBJ",department);

        request.getRequestDispatcher("../department_edit.jsp").forward(request,response);
    }


    public void edit(HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {

        //從request獲取參數(shù)值
        String id = request.getParameter("id");
        String name = request.getParameter("name");
        String address = request.getParameter("address");
        //將值復(fù)制給Department對(duì)象
        Department department = new Department();
        department.setName(name);
        department.setAddress(address);
        department.setId(Integer.parseInt(id));
        //插入表中
        departmentService.edit(department);
        //返回list.do,不需要傳值,使用重定向
        response.sendRedirect("list.do");

    }


    public void remove(HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {

        String id = request.getParameter("id");
        departmentService.remove(Integer.parseInt(id));
        response.sendRedirect("list.do");

    }

    }
  • LogController
package com.alan.controller;


import com.alan.entity.Log;
import com.alan.service.LogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

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

@Controller("logController")

public class LogController {

    @Autowired
    private LogService logService;

    public void operationLog(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        List<Log> list = logService.getOperationLog();
        request.setAttribute("LIST",list);
        request.setAttribute("TYPE","操作");
        request.getRequestDispatcher("../log_list.jsp").forward(request,response);
    }


    public void loginLog(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        List<Log> list = logService.getLoginLog();
        request.setAttribute("LIST",list);
        request.setAttribute("TYPE","登陸");
        request.getRequestDispatcher("../log_list.jsp").forward(request,response);
    }


    public void systemLog(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        List<Log> list = logService.getSystemLog();
        request.setAttribute("LIST",list);
        request.setAttribute("TYPE","系統(tǒng)");
        request.getRequestDispatcher("../log_list.jsp").forward(request,response);
    }
}
  • SelfController
package com.alan.controller;


import com.alan.entity.Staff;
import com.alan.service.SelfService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

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

@Controller("selfController")
public class SelfController {


    //依賴注入對(duì)象
    @Autowired
    private SelfService selfService;


    //跳轉(zhuǎn)到登陸頁面  jsp里面應(yīng)該是toLogin.do
    public void toLogin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        request.getRequestDispatcher("login.jsp").forward(request,response);
    }

    //登陸流程 login.do
    public void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //從頁面獲取用戶名和密碼
        String account = request.getParameter("account");
        String password = request.getParameter("password");

        //用戶校驗(yàn)
        Staff staff = selfService.login(account,password);
        if(staff == null){
            //密碼錯(cuò)誤,重定向到登陸頁面。一般一些異??赡苁褂玫街囟ㄏ?。url發(fā)生改變。
            response.sendRedirect("toLogin.do");
        }else {
            request.getSession().setAttribute("USER",staff);
            response.sendRedirect("main.do");
        }

    }

        //打開主頁面 main.do
    public void main(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        request.getRequestDispatcher("index.jsp").forward(request,response);
    }


    //退出 logout.do
    public void logout(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //將session中的USER置空
        request.getSession().setAttribute("USER",null);
        response.sendRedirect("toLogin.do");
    }

    // 顯示個(gè)人信息 /self/info.do
    public void info(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        request.getRequestDispatcher("../info.jsp").forward(request,response);
    }

    //打開修改密碼界面 /self/toChange.do
    public void toChangePassword(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.getRequestDispatcher("../change_password.jsp").forward(request,response);
    }

    //修改密碼 /self/changePassword.do
    public void changePassword(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String password = request.getParameter("password");
        String password1 = request.getParameter("password1");

        Staff staff = (Staff) request.getSession().getAttribute("USER");
        if(!staff.getPassword().equals(password)){
            response.sendRedirect("toChangePassword.do");
        }else {
            selfService.changePassword(staff.getId(),password1);
           // response.sendRedirect("../logout.do");
            //<script type = "text/javascript">parent.location.href="../logout.do"</script>
            response.getWriter().print("<script type = \"text/javascript\">parent.location.href=\"../logout.do\"</script>");
        }


    }
}
  • StaffController
package com.alan.controller;

import com.alan.entity.Department;
import com.alan.entity.Department;
import com.alan.entity.Staff;
import com.alan.service.DepartmentService;
import com.alan.service.StaffService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

@Controller("staffController")
public class StaffController {
    @Autowired
    private StaffService staffService;
    @Autowired
    private DepartmentService departmentService;

    public void list(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        List<Staff> list = staffService.getAll();
        request.setAttribute("LIST",list);
        request.getRequestDispatcher("../staff_list.jsp").forward(request,response);
    }

    public void toAdd(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        List<Department> list = departmentService.getAll();
        request.setAttribute("DLIST",list);
        request.getRequestDispatcher("../staff_add.jsp").forward(request,response);
    }
    public void add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String account = request.getParameter("account");
        String name = request.getParameter("name");
        String sex = request.getParameter("sex");
        String idNumber = request.getParameter("idNumber");
        String info =request.getParameter("info");
        Date bornDate=null;
        try {
            bornDate = new SimpleDateFormat("yyyy-MM-dd").parse(request.getParameter("bornDate"));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        Integer did = Integer.parseInt(request.getParameter("did"));

        Staff staff = new Staff();
        staff.setInfo(info);
        staff.setBornDate(bornDate);
        staff.setIdNumber(idNumber);
        staff.setDid(did);
        staff.setAccount(account);
        staff.setName(name);
        staff.setSex(sex);

        staffService.add(staff);
        response.sendRedirect("list.do");
    }

    public void toEdit(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //編輯界面需要員工信息和部門信息
        Integer id = Integer.parseInt(request.getParameter("id"));
        Staff staff = staffService.get(id);
        request.setAttribute("OBJ",staff);
        List<Department> list = departmentService.getAll();
        request.setAttribute("DLIST",list);
        request.getRequestDispatcher("../staff_edit.jsp").forward(request,response);
    }
    public void edit(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Integer id = Integer.parseInt(request.getParameter("id"));
        String account = request.getParameter("account");
        String name = request.getParameter("name");
        String sex = request.getParameter("sex");
        String idNumber = request.getParameter("idNumber");
        String info =request.getParameter("info");
        Date bornDate=null;
        try {
            bornDate = new SimpleDateFormat("yyyy-MM-dd").parse(request.getParameter("bornDate"));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        Integer did = Integer.parseInt(request.getParameter("did"));

        Staff staff = staffService.get(id);
        staff.setInfo(info);
        staff.setBornDate(bornDate);
        staff.setIdNumber(idNumber);
        staff.setDid(did);
        staff.setAccount(account);
        staff.setName(name);
        staff.setSex(sex);

        staffService.edit(staff);
        response.sendRedirect("list.do");
    }
    public void remove(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Integer id = Integer.parseInt(request.getParameter("id"));
        staffService.remove(id);
        response.sendRedirect("list.do");
    }

    public void detail(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Integer id = Integer.parseInt(request.getParameter("id"));
        Staff staff = staffService.get(id);
        request.setAttribute("OBJ",staff);
        request.getRequestDispatcher("../staff_detail.jsp").forward(request,response);
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容