**System.out.println() 输出为空不会往下执行,且不报错**

System.out.println() 输出为空不会往下执行,且不报错

今天在用ssh做登录页面的时候发现输入错误的用户名和错误的密码时jsp页面不会接收到request传来的login_infos,经过调试后发现程序卡在System.out.println(emp.getEname())这句话上,代码如下

public String doLogin(){
Emp emp = (Emp)loginService.login(this.user.getLoginuser());
//System.out.println(emp.getEname());如果emp为空不会报错也不会往下执行
try {
System.out.println(emp.getEmpno());//如果用trycatch把异常抛出,则会继续往下执行
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//System.out.println(emp);

    if (emp == null) {
        getRequest().setAttribute("login_infos", "用户名不存在");
        return "fail";
    } else {
        if (this.user.getLoginpass() == null
                || "".equals(this.user.getLoginpass())) {
            getRequest().setAttribute("login_infos", "密码为空");

            return "fail";
        } else {
            if (this.user.getLoginpass().equals(
                    String.valueOf(emp.getEmpno()))) {
                getSession().setAttribute("emp", emp);
                /*
                 * req.setAttribute("login_infos", "登陆成功");
                 */return "success";
            } else {
                getRequest().setAttribute("login_infos", "密码错误");
                return "fail";
            }
        }
    }
}

控制台输出hibernate的查询语句,程序没报错也不会往下执行,
Hibernate:
select
this_.empno as empno1_1_,
this_.ename as ename1_1_,
this_.job as job1_1_,
this_.sal as sal1_1_,
this_.comm as comm1_1_,
this_.deptno as deptno1_1_,
dept2_.deptno as deptno0_0_,
dept2_.dname as dname0_0_,
dept2_.loc as loc0_0_
from
emp this_
left outer join
dept dept2_
on this_.deptno=dept2_.deptno
where
this_.ename=?
order by
this_.ename asc

解决办法就是将System.out.println(emp.getEname());注释掉或者抛出异常,程序就会继续往下执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误通常是由于缺少JDBC驱动程序引起的。在Java应用程序中,JDBC驱动程序是用于连接数据库的必要组件。在这种情况下,错误信息指出缺少dm.jdbc.driver.DmDriver类,这意味着需要下载并安装相应的JDBC驱动程序。 解决此问题的步骤如下: 1. 确认你的JDBC驱动程序是否正确安装。你可以在Maven仓库或官方网站上下载相应的JDBC驱动程序。 2. 确认你的JDBC驱动程序是否与你的MySQL版本兼容。如果不兼容,你需要下载相应版本的JDBC驱动程序。 3. 确认你的JDBC驱动程序是否正确配置。你需要将JDBC驱动程序添加到你的Java应用程序的类路径中。 以下是一个示例代码,演示如何使用JDBC连接MySQL数据库: ```java import java.sql.*; public class MySQLExample { static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/EMP"; static final String USER = "username"; static final String PASS = "password"; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try{ Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(DB_URL,USER,PASS); stmt = conn.createStatement(); String sql; sql = "SELECT id, name, age FROM Employees"; ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ int id = rs.getInt("id"); int age = rs.getInt("age"); String name = rs.getString("name"); System.out.print("ID: " + id); System.out.print(", Age: " + age); System.out.print(", Name: " + name); System.out.println(); } rs.close(); stmt.close(); conn.close(); }catch(SQLException se){ se.printStackTrace(); }catch(Exception e){ e.printStackTrace(); }finally{ try{ if(stmt!=null) stmt.close(); }catch(SQLException se2){ } try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); } } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值