qq_45724353 2022-07-19 20:28 采纳率: 0%
浏览 25

jsp登录页面使用DButils框架与servlet实行登录跳转无法成功

问题遇到的现象和发生背景

使用重定向与转发对登录页面实现登录失败与登录成功的页面跳转时,代码不报错,进入登录页面(http://localhost:8080/dt-chapter/page/front/login.jsp)与登录页面跳转到DemoServlet页面全都没出现错误,但是就是无法跳转到登录成功与失败的页面。

问题相关代码,请勿粘贴截图

DemoServlet类:
package cn.java.servlet;

import java.io.IOException;
import java.sql.SQLException;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.java.dao.UserDao;
import cn.java.dao.impl.UserDaoImpl;

/**

  • Servlet implementation class DemoServlet

  • /
    @WebServlet("/DemoServlet")
    public class DemoServlet extends HttpServlet {
    private UserDao ud = new UserDaoImpl();

    protected void doGet(HttpServletRequest request, HttpServletResponse response)

          throws ServletException, IOException {
    
      try {
          String username = request.getParameter("username");
          String password = request.getParameter("password");
          Map<String, Object> map = ud.SelectUserId(username, password);
          Object obj = map.get("flag");
          int flag = Integer.parseInt(obj.toString());
    
          if (flag >= 1) {
              request.getRequestDispatcher("/page/front/success.jsp").forward(request, response);
          } else {
              response.sendRedirect("/dt-chapter/page/front/fail.jsp");
          }
      } catch (SQLException e) {
    
          e.printStackTrace();
    
      }
    

    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)

          throws ServletException, IOException {
    

    }

}
UserDaoImpl类

package cn.java.dao.impl;

import java.sql.SQLException;
import java.util.Map;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.MapHandler;

import cn.java.dao.UserDao;
import cn.java.utils.JdbcUtil;

public class UserDaoImpl implements UserDao {
private QueryRunner qr = new QueryRunner(JdbcUtil.dataSource);

@Override
public Map<String, Object> SelectUserId(String username, String password) throws SQLException {
    return qr.query(
            "SELECT COUNT(*) flag FROM USER WHERE `password`='" + password + "'AND username='" + username + "'",
            new MapHandler());
}

}
登录页面
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%
String bassPath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/";
%>

<title>登录</title>

用户名<input name="username" type="text" />

密 码<input name="password" type="password" />

<input name="ball" value="football" type="checkbox" />足球 <input name="ball" value="basketball" type="checkbox" />篮球 <input name="ball" value="pingpangball" type="checkbox" />乒乓球

<input value="登录" type="submit" />

运行结果及报错内容

img

img

我的解答思路和尝试过的方法

我感觉问题可能是出在我的DemoServlet的if代码块中,但是因为没报错,无法解决问题

我想要达到的结果

能够实现页面跳转

  • 写回答

2条回答 默认 最新

  • 学习日记 新星创作者: 后端开发技术领域 2022-07-19 21:03
    关注

    你这个表单如果提交的是POST请求进入不了你写的GET请求里,第二就是跳转前的代码出现异常没有往下执行那两个跳转

    评论

报告相同问题?

问题事件

  • 创建了问题 7月19日