Нужна помощь для AJAX - PullRequest
       1

Нужна помощь для AJAX

0 голосов
/ 03 апреля 2011

HTML код:

<html>  
<head>
<script type="text/javascript">
function checkforValid(str)
{
        var xmlhttp;
        if (str.length==0)
        { 
              document.getElementById("txtHint").innerHTML="";
              return;
        }
        if (window.XMLHttpRequest)
        {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
         }
        else
        {
            // code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }

        xmlhttp.onreadystatechange=function()
        {
            if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
                document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
            }
        }
        xmlhttp.open("GET","get.jsp?q=" + str ,true);
        xmlhttp.send();
    }
    </script>
    </head>

    <body>

        <form action=""> 
            Name: <input type="text" id="user" name = "user" onkeyup="checkforValid(this.value)" />
        </form>

        <br>
        <p>Here : <span id="txtHint"></span> </p> 

    </body>
</html>

JSP:

<%@ page language="java" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.math.*" %>
<%@ page import="java.security.*" %>
<html>
<body>
<%
    String user = request.getParameter("user");
    out.println("Username is::"+user+".");
    Connection con = null;

    try
    {
        Connection conn = null;
        String url = "jdbc:mysql://localhost:3306/";
        String dbName = "p2p";
        String driver = "com.mysql.jdbc.Driver";
        String userName = "root";
        String password = "123";

        Class.forName(driver).newInstance();
        conn = DriverManager.getConnection(url+dbName,userName,password);

        Statement st = conn.createStatement();
        ResultSet rs = st.executeQuery( "select * from newuser where username =" + user  );

            if(rs.next())
            out.println("ok");
            else out.println("absent");

        st.close();
    }
    catch( Exception e )
    {
        out.print( "Database Error"+ e );
    }
    finally
    {
        try
        {
            con.close();
        }
        catch(Exception e1)
        {
        }
    }

%>
</body>
</html>

Когда я запускаю его на glassfish, функция jsp page request.getParameter получает значение null, т.е. выводит User: null, поэтому просьба помочь, а также предложить несколько интересных проектовАякса

Ответы [ 3 ]

0 голосов
/ 03 апреля 2011

Два варианта для вас.

1: Chage request.getParameter("user"); до request.getParameter("q");

2: Отправьте форму, используя ajax, и вы получите параметр user.

0 голосов
/ 03 апреля 2011

Вы отправляете параметр имени пользователя в JSP в переменной с именем q в своем коде и извлекаете ее с помощью переменной user

xmlhttp.open("GET","get.jsp?q=" + str ,true);

Теперь возможны два исправления:

Первое и лучшее

Исправление в javascript, измените имя переменной с q пользователю и оставьте код JSP неизменным.

xmlhttp.open("GET","get.jsp?user=" + str ,true);

Второе исправление (не рекомендуется)

Исправьте код в JSP.

Вместо String user = request.getParameter("user"); измените его на String user = request.getParameter("q"); и оставьте скрипт таким, какой он есть ...

Я думаю, что это должно сработать.

0 голосов
/ 03 апреля 2011

Вы отправляете:

xmlhttp.open("GET","get.jsp?q=" + str ,true);

Но потом спрашиваю:

String user = request.getParameter("user");

Это ноль, потому что вы никогда не отправляете параметр "user". Измените его на:

xmlhttp.open("GET","get.jsp?user=" + str ,true);

Обновление


Несколько сайтов учебников / документации по AJAX:

http://www.xul.fr/en-xml-ajax.html

http://code.google.com/edu/ajax/tutorials/ajax-tutorial.html

http://www.hunlock.com/blogs/AJAX_for_n00bs (и многие другие документы там)

http://www.ibm.com/developerworks/web/library/wa-ajaxintro1/index.html

И, конечно же, блог BalusC:

http://balusc.blogspot.com/2009/05/javajspjsf-and-javascript.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...