日期在jsp中的location.href中发送错误

时间:2016-12-18 18:26:30

标签: html eclipse jsp

首先我使用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;

我不知道为什么会失败?!

2 个答案:

答案 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")%>";