首先我使用intro.jsp中的表单操作运行intro_do.jsp,包括值'ID','password'。在intro_do.jsp中,使用while和& if比较来比较数据库中的值。
case 2 :
pstmt = conn.prepareStatement(sql2); rs = pstmt.executeQuery(); while (rs.next()) {
if (stid.equals(rs.getString("Student ID"))) {
if (password.equals(rs.getString("password"))) {
String myname = rs.getString("name");
%>
<script>
alert('login success');
//location.href="student.jsp?param="+;
location.href = "student.jsp+param=" + <%=myname%>;
//location.href = "student.jsp";
</script>
<%
break;
}
}
}
%><script>
alert('fail');
location.href = "intro.jsp";
</script>
<%
break;
我不知道为什么会失败?!
答案 0 :(得分:0)
将Java代码和脚本结合起来并不是一种好习惯。使用ajax或表单提交到servlet。或者在表单的任何字段中设置值。在js中检索它并进行操作。
答案 1 :(得分:0)
对于corse,您显然应该在执行示例时指定找到哪个错误。无论如何,我敢于猜测javascript scriptlet中出现了错误:你错误地认为了myname
变量的脚本范围。它应该是这样的:
location.href = "student.jsp?param=<%=myname%>";
...因为JSP变量首先在服务器端解析,所以传递给浏览器的HTML页面将是这样的:
location.href = "student.jsp?param=joe";
此行中的另一个重要细节是假定myname
不包含空白字符。否则,你应该先逃避它:
location.href = "student.jsp?param=<%=URLEncoder.encode(myname,"UTF-8")%>";