if(requestURI.endsWith("load.action")){ //用户登录 //1 获取前端数据 long userID = Long.parseLong(request.getParameter("username")); String password = request.getParameter("password"); System.out.println("用户ID:"+userID+"密码:"+password); User user = new User(userID,password); //2 业务处理 User loadUSer = userService.loadUser(user); //3 根据结果做出响应 if(loadUSer == null){ //cdx response.getWriter().print("<script>alert('load fail');window.location='load.jsp'</script>"); } else{ response.sendRedirect("getAllProducts.action"); } }
时间: 2024-02-14 15:35:46 浏览: 17
这是一段 Java 代码,看起来像是一个用户登录的处理逻辑。在请求 URI 以 "load.action" 结尾时,会从请求参数中获取用户 ID 和密码,封装成一个 User 对象,然后调用 userService 的 loadUser 方法进行业务处理。如果返回的 loadUSer 为null,则会弹出一个提示框,否则会重定向到 "getAllProducts.action"。
相关问题
@WebServlet("*.action") public class BaseServlet extends HttpServlet { //C:业务控制层 StudentService studentService = null; public BaseServlet() { studentService = new StudentService(); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1 request.getRequestURI():获取请求url String requestURI = request.getRequestURI(); if(requestURI.endsWith("load.action")){ //登录请求 //1 获取前端数据:request String username = request.getParameter("username"); //2 处理登录业务:JDBC+service+dao+utis Student student = studentService.loadStudent(username); // 3 根据结果响应:response if(student == null){ //登录失败,弹框"登录失败" 回到studentLoad.html } else{ //打印学生信息 } } else if(requestURI.endsWith("regedit.action")){ //注册业务 } } }
这段代码是一个基础的 Servlet 控制器,它通过继承 HttpServlet 类来实现对 HTTP 请求的处理。其中,doGet() 和 doPost() 方法分别处理 GET 和 POST 请求,并且在 doPost() 中调用了 doGet() 方法以统一处理两种类型的请求。
在 doGet() 方法中,首先通过 request.getRequestURI() 方法获取请求的 URL,然后根据 URL 的结尾字符串来判断具体的业务逻辑,例如登录请求和注册请求。对于登录请求,代码通过获取前端传来的用户名并调用 StudentService 类中的 loadStudent() 方法来处理登录业务;对于注册请求,可以在 else if 分支中编写相应的处理逻辑。
需要注意的是,这段代码中的 StudentService 类并没有给出具体的实现,我们只能看出它是一个业务逻辑层的类,用于处理学生信息相关的业务。此外,代码中还有一些注释,说明了一些方法或变量的作用,例如 request.getRequestURI() 方法的作用是获取请求的 URL。
public class BaseFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { // 初始化 } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) request; HttpServletResponse httpResponse = (HttpServletResponse) response; String requestURI = httpRequest.getRequestURI(); if (requestURI.endsWith("load.jsp") || requestURI.endsWith("load.action")) { // 如果是load.jsp或load.action请求,则直接放行 chain.doFilter(request, response); return; } HttpSession session = httpRequest.getSession(false); if (session != null && session.getAttribute("user") != null) { // 如果已经登录,则放行请求 chain.doFilter(request, response); return; } // 否则跳转到登录页面 httpResponse.sendRedirect("/load.jsp"); } @Override public void destroy() { // 销毁 } }补全代码
这段代码是一个基础的过滤器实现,用于过滤所有的请求,检查用户是否已经登录,如果没有登录则跳转到登录页面。
完整的代码如下:
```
public class BaseFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// 初始化
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
String requestURI = httpRequest.getRequestURI();
if (requestURI.endsWith("load.jsp") || requestURI.endsWith("load.action")) {
// 如果是load.jsp或load.action请求,则直接放行
chain.doFilter(request, response);
return;
}
HttpSession session = httpRequest.getSession(false);
if (session != null && session.getAttribute("user") != null) {
// 如果已经登录,则放行请求
chain.doFilter(request, response);
return;
}
// 否则跳转到登录页面
httpResponse.sendRedirect("/load.jsp");
}
@Override
public void destroy() {
// 销毁
}
}
```