【JavaWeb】解决JSP加载不出JDBC驱动的相关问题

首先目的是jsp页面(login.jsp)拿到账号密码,跳转到第二个jsp页面(check.jsp),调用自己写的java方法(mysqldao.check(string name,string pwd))去数据库查询并返回结果。

问题有如下几个:

1.mysqldao.check()导入出错,即是在check.jsp中无法调用到mysqldao.check()方法
2.mysqldao.check()拿到name与pwd值
3.check.jsp报错加载不到jdbc驱动问题

问题1,解决方案如下:

1.将自己写的类打成包,再通过<%@ page import="包名.方法" %>去调用
在这里插入图片描述


<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%@ page import="logindao.mysql.login" %>
>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%
        String name = request.getParameter("user");
        String pwd = request.getParameter("pwd");
        int result = login.login1(name,pwd);
        if (result==1){
            out.print("登陆成功");
        }else if (result==0){
            out.print("账号名或者密码错误");
        }else{
            out.print("系统异常");
        }
    %>
</body>
</html>

问题2:

  • 因为request是jsp的内置对象,我们在java代码中是无法直接调用requset,故无法通过request.getParameter()去拿值,这里就我们通过函数传参的方式去解决这个问题。
public static int login1(String usr,String pwd){

        /*
         *   1成功 0账号秘密出错 -1系统异常
         *
         * */
        PreparedStatement statement = null;
        Connection connection = null;
        ResultSet rs = null;
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            connection = DriverManager.getConnection(URL,USERNAME,PWD);
            String sql="select count(*) from user where user_id = ? and user_password = ?";
            statement = connection.prepareStatement(sql);
            statement.setString(1,usr);
            statement.setString(2,pwd);
            rs = statement.executeQuery();
            int count = -1;
            if (rs.next()){
                count = rs.getInt(1);
            }if (count>0){
                return 1;
            }else {
                return 0;
            }
        }catch (Exception e){
            e.printStackTrace();
            return -1;
        }finally {
            try {
                if (rs != null ){
                    rs.close();
                    statement.close();
                    connection.close();
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }

问题3

  • 这个问题花费了我很多的时间,因为我比较菜,其次idea的相关问题解决方法在网络上没有eclipse的资源多
  • 首先遇到这个问题,网上的大多解决方案是,是否将jar包放入到了web-inf下的lib目录中。一般而言问题都会解决,这是web项目不同于普通项目的地方。
  • 我个人是将jar包放入到了lib目录中,却并未如意。
  • 后来通过大量尝试,发现问题是在于idea的项目配置出错了。很重要的一步在创建web项目的时候,配置lib目录与classes目录。即首先在web-inf目录下创建lib目录和classes目录,然后再配置到这两个目录。IDEA配置JavaWeb项目

  • 目的:在构建项目时,能将.class文件输出至 classes 文件夹中。从lib目录读取jar包

在这里插入图片描述

  • 还有就是配置facets,即配置到项目的web根目录下,其次这个这个反斜杠及其的坑,我在做完上面的步骤之后,打开网页报404.资源不存在,后来查看了一会儿,才发现这个反斜杠写反了,写成了 ” / “,导致后面的无法访问.极度可怜。

在这里插入图片描述

最终,终于好了。太菜了,哭了。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值