我问了一个关于这个JDBC登录应用程序的问题我在Eclipse上开发时没有识别我在表单中输入的凭据。您可能希望read首先了解我的问题。
在使用我的代码(并进行多次测试以检查JDBC驱动程序是否已加载并构建到类路径中)之后,我发现该错误更多地与ResultSet没有返回我请求的特定行我的查询。我只是想知道这是否是常见事件,还是我编写了错误的代码?
这里是Login类的(已编辑)代码:
var find = function(results, type, counter, adjPx, $el) {
if (results.length > 0) {
if (type === 'next') {
if (counter > 0 && results.length == counter) {
counter = 0;
}
} else if (type === 'prev') {
if (counter < 0) {
counter = results.length - 1;
} else if (counter === results.length) {
counter = counter - 2;
}
}
results.removeClass("active");
$(results[counter]).addClass("active");
if ($el) {
$('html,body').animate({
scrollTop: $(results[counter]).offset().top - adjPx
}, 100);
} else {
$el.animate({
scrollTop: $(results[counter]).offset().top - adjPx
}, 100);
}
counter = (type === 'prev') ? counter - 1 : counter + 1;
}
return counter;
};
非常感谢任何形式的帮助。谢谢!
答案 0 :(得分:1)
在编辑问题之前,可以看到您正在从请求中读取凭据。您是否检查了用户名和密码是否包含正确的值(在控制台上注销)?昨天我在你的另一个问题上更新了我的答案。您的输入字段没有名称,因此当您尝试将其从请求中删除时,用户和密码的值可能为空。
解释可以在这里找到:Does form data still transfer if the input tag has no name?
答案 1 :(得分:0)
解决了这个问题。查询是正确的,但ResultSet返回为空,因为由于某种原因,无法读取输入名称=“pword”中的值(当我尝试将其值打印到控制台时返回null),因此找不到匹配项数据库。认为它与输入类型密码有关(这很奇怪,因为它应该以这种方式工作)。我所做的是我将输入类型更改为文本,这是有效的,除了我的表单上的密码字段中的字符可以看到。将其更改回输入类型=密码,并以某种方式解决了我的问题。不知道为什么会这样,但重定向现在正在发挥作用。谢谢@ErikP,谢谢你的帮助!