关于提交响应后无法调用sendRedirect?

前端输入数据交给/student(也就是这个类处理)处理 userRequset=save(执行save方法)

问题是switch里面不加break 为什么会报提交后无法调用重定向 不应该是直接重定向别的页面去了吗 请各位老师傅请教 多谢了

@WebServlet("/students")
public class StudentServlet extends HttpServlet {
    private StudentService bSer=new StudentServiceimpl();
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        String userRequest = req.getParameter("userRequest");
        userRequest=(userRequest!=null)?userRequest:"";
        switch (userRequest){
            case "save":
                save(req,resp);
                break;
            case "input":
                input(req,resp);
                break;
            case "delete":
                delete(req,resp);
                break;
            default:
                showAll(req,resp);
        }
    }

    private void showAll(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
        Object user_in_session = req.getSession().getAttribute("USER_IN_SESSION");
        if (user_in_session==null){
            resp.sendRedirect("/login.jsp");
            return;
        }
        StudentUserQuery studentUserQuery = new StudentUserQuery();
        String currentPage = req.getParameter("currentPage");
        if (IsNotNullUtil.isNotNull(currentPage)){
            studentUserQuery.setCurrentPage(Integer.parseInt(currentPage));
        }
        String pageSize = req.getParameter("pageSize");
        if (IsNotNullUtil.isNotNull(pageSize)){
            studentUserQuery.setPageSize(Integer.parseInt(pageSize));
        }
        String bname = req.getParameter("bname");
        if ((IsNotNullUtil.isNotNull(bname))){
            studentUserQuery.setBname(bname);
        }
        String minSalePrice = req.getParameter("minSalePrice");
        if (IsNotNullUtil.isNotNull(minSalePrice)){
            studentUserQuery.setMinSalePrice(new BigDecimal(minSalePrice));
        }
        String maxSalePrice = req.getParameter("maxSalePrice");
        if (IsNotNullUtil.isNotNull(maxSalePrice)){
            studentUserQuery.setMaxSalePrice(new BigDecimal(maxSalePrice));
        }
        PageShow pageShow = bSer.query(studentUserQuery);
        req.setAttribute("studentUserQuery",studentUserQuery);
        req.setAttribute("pageShow",pageShow);
        req.getRequestDispatcher("/WEB-INF/bookShow.jsp").forward(req,resp);
    }

    private void delete(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        String id = req.getParameter("id");
        if (IsNotNullUtil.isNotNull(id)){
            bSer.delById(Long.valueOf(id));
        }
        resp.sendRedirect("/students");
    }

    private void input(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String id = req.getParameter("id");
        if (IsNotNullUtil.isNotNull(id)){
            Students students = bSer.selOneById(Long.parseLong(id));
            req.setAttribute("students",students);
            return;
        }
        try {
            req.getRequestDispatcher("/WEB-INF/addOrUpd.jsp").forward(req, resp);
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    private void save(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        String sid = req.getParameter("sid");
        String sname = req.getParameter("sname");
        String sub_id = req.getParameter("sub_id");
        String address = req.getParameter("address");
        String phone = req.getParameter("phone");
        String email = req.getParameter("email");
        String age = req.getParameter("age");
        Students students = new Students();
        if (IsNotNullUtil.isNotNull(sid)){
            students.setSid(sid);
        }
        if (IsNotNullUtil.isNotNull(sname)){
            students.setSname(sname);
        }
        if (IsNotNullUtil.isNotNull(sub_id)){
            students.setSub_id(Integer.valueOf(sub_id));
        }
        if (IsNotNullUtil.isNotNull(address)){
            students.setAddress(address);
        }
        if (IsNotNullUtil.isNotNull(phone)){
            students.setPhone(phone);
        }
        if (IsNotNullUtil.isNotNull(email)){
            students.setEmail(email);
        }
        if (IsNotNullUtil.isNotNull(age)){
            students.setAge(Integer.valueOf(age));
        }

            bSer.save(students);
            resp.sendRedirect("/students");
    }

}


img

回答:有点奇怪呀,你这个重定向,一会重定向到页面,一会又跳到请求,都可以实现的吗,不是跳到页面才对的吗

img

img

注意请求及页面的命名不要冲突,不然容易搞混