2016-12-18 4 views
0

сначала я запустил intro_do.jsp, используя действие формы в intro.jsp, включая значение «ID», «пароль». и где в intro_do.jsp сравнить значение в базе данных, используя &, если так.date send error in location.href в jsp

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

Вы должны прочитать первые [Как создать Minimal, полный и проверяемый пример] (http://stackoverflow.com/help/mcve). –

ответ

0

Неправильно сочетать код Java и скрипт. используйте ajax или отправьте форму в сервлет. ИЛИ установите значение в любом из полей формы. извлеките его в js и выполните операцию.

0

Из корса, вы, очевидно, должны указать , ошибка, которую вы нашли при выполнении вашего примера. Во всяком случае, я бы осмелился предположить, что ошибка возникает в скрипт-скрипте javascript: вы ошибаетесь в области сценариев переменной 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")%>";