看报错信息,问题出现在了代码段的第二十行,这行只写了一个for循环,再看下面还报了一个空指针异常的错误,初步判断问题出现在了list上,jsp没能从Java后台中获取到list的数据。
找到对应发送请求的位置
package controller;
import service.UserService;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class DeleteUser extends HttpServlet {
private UserService userService=new UserService();
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id=request.getParameter("id");
String path=request.getContextPath();
userService.deleteUserById(Integer.parseInt(id));
response.sendRedirect(path+"/user/getUsers");
}
}
这里使用了重定向,业务逻辑是想在删除用户后,将处理完的用户表重新显示出来。
问题出现原因:这里servlet的转发和重定向有混淆,并没有给users.jsp页面传递上数据
解决方法:users.jsp换成获取全部用户的请求
response.sendRedirect(path+"/user/getUsers");