关于在jsp中写js嵌套java代码的用法?

<script type="text/javascript">
function check(){
var username=document.getElementById("username");
var username=document.getElementById("password");
//java代码块
<%
String sql="select * from Manger";
String user;
String pass;
ResultSet rs=DBHelper.query(sql);//sql代码已经写好在被的类中,此处为直接调用!!
while(rs.next()){
user=rs.getString("username");
pass=rs.getString("password");%>

if(username.value=="<%=user %>" &&passsword.value=="<%=pass%>")
{
return true;
}else if(username.value==""|| password.value==""){
username.setCustomValidity("账号或密码不能为空");
return false;
}else{
username.setCustomValidity("账号或密码错误,请从新输入");
return false;
}

<%
}
%>

}
</script>

执行:
<input type="submit" value="登录" onClick="check()">
在学javaee1,没接触过js,在做登录界面的时候,想在js代码中嵌套一些java代码做数据库操作,但是报空指针异常,sql代码是没错的,测试过了。但是不知道为什么一直报空指针,求指正改如何写。

第1个回答  2015-05-23
(1)给 username 赋了两次值,第二次应该是赋值给 passsword

(2)你这逻辑有问题,直接把用户名密码写到 js 文件返回给客户端了,等于给用户密码,让他自己去核对对不对。
(3)报空指针异常有提示哪一段么,没有的话,断点试试,看不出来哪有问题。追问

恩恩,那个username的地方写错了,没看见,但是代码改对之后依然不行额,但是我用mysql测试却可以,sqlserver2008报空指针额。我另外写了一个类测试sqlserver发现能用额,但是在jsp里写就报空指针,用的同样的sql代码!!

第2个回答  2015-05-23
具体的异常你要贴出来才能看出是什么问题,要看具体是在哪里报的空指针异常,确保你DBHelper里面连接数据库是正常的。追问

连接数据库的那部分写了个类测试过了,可以正常过读取。在jsp里这么写则报空指针!!请帮忙看看,或者给我个方案!!

追答

异常已经明显提示了,在DbHelper 的23行,打开statement的时候是空指定,这说明你的数据库没有连接成功,是空对象,你最好debug跟踪一下

追问

终于搞定了,不知道为什么用sqlserver2008就会空指针,而用mysql却不会。

本回答被提问者采纳
相似回答