gpt4 book ai didi

java - com.mysql.jdbc.Driver 无法编译 JSP

转载 作者:行者123 更新时间:2023-12-02 06:38:51 25 4
gpt4 key购买 nike

我正在尝试使用JSP制作登录系统并连接到MySQL数据库,并收到以下错误: Error message

我的代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
import="com.core.bibit.service.Security"
import="javax.servlet.*"
import="java.util.*"
import="com.mysql.jdbc.Driver"
%>
<%
String username = request.getParameter("username");
String password = request.getParameter("password");

boolean test = new Security().validateUser(username, password);
System.out.println("Authen: " + test);
if(test){
response.sendRedirect("test.jsp");
}else{
response.sendRedirect("about.jsp");
}
%>

package com.core.bibit.service;
import com.mysql.jdbc.Driver;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Arrays;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class Security {

private final static int ITERATION_NUMBER = 1000;

public Security(){

}

...

public boolean validateUser(String userName, String password){

boolean valid = false;

Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;

try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:8889/bibit?"
+ "user=root&password=root");

String query = "SELECT * FROM bibit.User WHERE username = ?";

ps = con.prepareStatement(query);
ps.setString(1, userName);

rs = ps.executeQuery();

String digest, salt;

if(rs.next()){
digest = rs.getString("PASSWORD");
salt = rs.getString("SALT");

System.out.println("Digest: " + digest);
System.out.println("Salt: " + salt);

if(digest == null || salt == null){
System.out.println("IF1");
throw new SQLException("Database inconsistant Salt or Digested Password altered");
}
if(rs.next()){
System.out.println("IF2");
throw new SQLException("Database inconsistent two CREDENTIALS with the same LOGIN");
}
/*else{
System.out.println("IF3");
digest = "000000000000000000000000000=";
salt = "00000000000=";
}*/

byte[] bDigest = base64ToByte(digest);
byte[] bSalt = base64ToByte(salt);

//compute digest
byte[] proposedDigest = getHash(ITERATION_NUMBER, password, bSalt);
System.out.println("bDigest: " + bDigest);
System.out.println("proDigest: " + proposedDigest);

System.out.println("Response: " + Arrays.equals(proposedDigest, bDigest)); // && valid)
valid = Arrays.equals(proposedDigest, bDigest);
}




}catch(Exception e){
e.printStackTrace();
}finally{
try {
// rs.close();
//ps.close();
//con.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return valid;

}
}

}

我使用 TomEE/Tomcat 7.0,我的 MySQL 库是:mysql-connector-java-5.1,我尝试将其添加到 server.xml 文件中:

<Resource name="jdbc/DATABASENAME" type="javax.sql.DataSource" maxActive="4" maxIdle="2"    username="root" password="" maxWait="23000" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:8889/bibit"></Resource>

谁能解释一下出了什么问题,以及如何解决它,或者只是朝正确的方向插入?

解决方案:如果通过 Eclipse 启动服务器并在一行中导入文件,则通过 Eclipse 添加 mysql 连接器,如下所示

最佳答案

例如,您需要使用逗号分隔的导入列表

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="com.core.bibit.service.Security, javax.servlet.*,java.util.*, com.mysql.jdbc.Driver"%>

并确保类路径中有所需的 jar/类(也在运行时)

关于java - com.mysql.jdbc.Driver 无法编译 JSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19355175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com