@WebServlet("/stu")
public class StudentServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
//使用单例模式
private StudentDAO dao;
public void init() {
dao=new StudentDAOImpl();
}
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
String cmd=req.getParameter("cmd");
if(cmd.equals("save")) {
this.save(req, resp);
}else if(cmd.equals("delete")) {
this.delete(req, resp);
}else if(cmd.equals("edit")) {
this.edit(req, resp);
}else {
this.list(req, resp);
}
}
protected void list(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List<Student> list=dao.listAll();
req.setAttribute("stulist", list);
req.getRequestDispatcher("/WEB-INF/view/student/list.jsp").forward(req, resp);
}
protected void delete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Long id=Long.valueOf(req.getParameter("id"));
dao.delete(id);
resp.sendRedirect("stu?cmd=list");
}
protected void save(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
String name=req.getParameter("name");
String age=req.getParameter("age");
Student newstu=new Student(name,Integer.valueOf(age));
String id=req.getParameter("id");
if(hasLength(id)) {
newstu.setId(Long.valueOf(id));
dao.update(Long.valueOf(id), newstu);
}else {
dao.save(newstu);
}
resp.sendRedirect("stu?cmd=list"); 这里如果使用请求转发,由于地址栏的请求不变,就会陷入表单重复提交的死循环
}
protected void edit(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String id=req.getParameter("id");
if(hasLength(id)) {
Student stu=dao.get(Long.valueOf(id));
req.setAttribute("student", stu);
}
req.getRequestDispatcher("/WEB-INF/view/student/edit.jsp").forward(req, resp);
}
private boolean hasLength(String str) {
return str!=null&&!"".equals(str.trim());
}
}
合并servlet后的问题
最新推荐文章于 2022-05-07 11:20:10 发布