haoxiaolan 2023-03-28 09:55 采纳率: 34.7%
浏览 23
已结题

javaWeb中 测试类中结果正确,servlet结果错误

package com.dao.imp;

import com.dao.UserLoginDao;
import com.tool.myutil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class UserLoginDaoImp implements UserLoginDao {

    Connection con  = null;
    PreparedStatement sta = null;
    ResultSet ret = null;



    //查询用户名密码是否存在与数据库中
    @Override
    public int login(String n, String p) {

        String sql = "";
        int n1 = 0;
        try {
            con = myutil.utilDbc();
            sql = "select count(id) from t_user where username= ? and password = ?";
            sta = con.prepareStatement(sql);
            sta.setString(1,n);
            sta.setString(2,p);
            ret = sta.executeQuery();
            while (ret.next()){
                n1 = ret.getInt(1);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            myutil.myclose(con,sta,ret);
        }
        return n1;
    }

}



package com.service.imp;

import com.dao.UserLoginDao;
import com.service.UserLoginService;

public class UserLoginSreviceImp implements UserLoginService {

    private UserLoginDao userLoginDao;

    public UserLoginSreviceImp(UserLoginDao userLoginDao) {
        this.userLoginDao = userLoginDao;
    }



    //登录业务
    @Override
    public int loginService(String n,String p) {
         return userLoginDao.login(n, p);
    }
}


package com.sevlet;

import com.dao.imp.UserLoginDaoImp;
import com.service.UserLoginService;
import com.service.imp.UserLoginSreviceImp;

import javax.servlet.RequestDispatcher;
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 java.io.IOException;


@WebServlet("/login")
public class LoginSevlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
            ServletException, IOException {
            request.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");

            UserLoginService u = new UserLoginSreviceImp(new UserLoginDaoImp());
            int i = u.loginService("zhangsan", "123");
            System.out.println(i);
            if(i == 1){
                //登录成功
                request.setAttribute("msg","登录成功");
            }else{
                //登录失败
                request.setAttribute("msg","登录失败");
            }
            //转发到show.js
            //获取请求转发器对象
            RequestDispatcher a = request.getRequestDispatcher("show.jsp");
            //forward(方法)调用转发
            a.forward(request,response);

    }
}

i 值为0

import com.dao.imp.UserLoginDaoImp;
import com.service.UserLoginService;
import com.service.imp.UserLoginSreviceImp;
import org.junit.Test;

public class ServiceTest {

    @Test
    public void test01(){
        UserLoginService u = new UserLoginSreviceImp(new UserLoginDaoImp());
        int i= u.loginService("zhangsan", "123");
        System.out.println(i);
    }

}

i 值为 1

为啥测试类有结果,载servlet中没有结果?

  • 写回答

3条回答 默认 最新

  • Huazie 全栈领域优质创作者 2023-03-28 10:55
    关注

    你的 mysql驱动依赖,没有打包到 你web项目中吧,检查一下

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月30日
  • 已采纳回答 3月28日
  • 创建了问题 3月28日

悬赏问题

  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥20 java在应用程序里获取不到扬声器设备