Servlrt练习
/**
* 用于业务层与前端的交互
*/
@WebServlet("/empServlet")
public class EmpServlet extends HttpServlet {
EmpServiceImpl empService = new EmpServiceImpl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
/**
* 前端有json对象,但后台没有,需要通过第三方工具实现(阿里的fastjson,谷歌提供Gson)
* @param req
* @param resp
* @throws ServletException
* @throws IOException
*/
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置返回类型及编码
resp.setContentType("text/html;charset=utf8");
PrintWriter out = resp.getWriter();
ResponseResult responseResult = new ResponseResult();
String option = req.getParameter("option");
if (option.equals("query")) {
queryEmpList(out, responseResult);
} else if ("del".equals(option)) {
String eno = req.getParameter("eno");
delEmp(Integer.valueOf(eno), resp);
out.close();
}
}
/**
* 查询功能
* @param out
* @param responseResult
*/
public void queryEmpList(PrintWriter out,ResponseResult responseResult){
//从业务层获取数据
List<Emp> empList= empService.queryEmpList();
//1.layui的数据渲染要求有固定的数据格式
Map<String,Object> map=responseResult.success(empList);
//将数据以json字符串的形式返回出去
// String jsonStr = JSON.toJSONStringWithDateFormat(map,"yyyy-MM-dd");
String jsonStr= JSON.toJSONStringWithDateFormat(map,"yyyy-MM-dd");
//通过输出流返回给前端
out.write(jsonStr);
}
/**
* 删除员工信息
* @param eno
*/
public void delEmp(int eno,HttpServletResponse resp) throws IOException {
empService.deleteEmp(eno);
resp.sendRedirect("member-list.jsp");
}
}
public class ResponseResult {
private int code;
private String msg;
private Map<String,Object> map=new HashMap<>();
public ResponseResult(){
map.put("code",0);
map.put("msg","success");
}
public Map<String,Object> success(){
map.put("count",0);
map.put("data",null);
return map;
}
public Map<String,Object> success(List<?> data){
map.put("count",data.size());
map.put("data",data);
return map;
}
public Map<String,Object> error(int code,String msg){
map.put("code",code);
map.put("msg",msg);
map.put("count",0);
map.put("data",null);
return map;
}
}
/**
* 用于业务层与前端的交互
*/
@WebServlet("/empServlet")
public class EmpServlet extends HttpServlet {
EmpServiceImpl empService = new EmpServiceImpl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
/**
* 前端有json对象,但后台没有,需要通过第三方工具实现(阿里的fastjson,谷歌提供Gson)
* @param req
* @param resp
* @throws ServletException
* @throws IOException
*/
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置返回类型及编码
resp.setContentType("text/html;charset=utf8");
PrintWriter out = resp.getWriter();
ResponseResult responseResult = new ResponseResult();
String option = req.getParameter("option");
if (option.equals("query")) {
queryEmpList(out, responseResult);
} else if ("del".equals(option)) {
String eno = req.getParameter("eno");
delEmp(Integer.valueOf(eno), resp);
out.close();
}
}
/**
* 查询功能
* @param out
* @param responseResult
*/
public void queryEmpList(PrintWriter out,ResponseResult responseResult){
//从业务层获取数据
List<Emp> empList= empService.queryEmpList();
//1.layui的数据渲染要求有固定的数据格式
Map<String,Object> map=responseResult.success(empList);
//将数据以json字符串的形式返回出去
// String jsonStr = JSON.toJSONStringWithDateFormat(map,"yyyy-MM-dd");
String jsonStr= JSON.toJSONStringWithDateFormat(map,"yyyy-MM-dd");
//通过输出流返回给前端
out.write(jsonStr);
}
/**
* 删除员工信息
* @param eno
*/
public void delEmp(int eno,HttpServletResponse resp) throws IOException {
empService.deleteEmp(eno);
resp.sendRedirect("member-list.jsp");
}
}