三層架構(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);
}
}
