0

Hi,

Below I have code that contains ajax on a JSP. The JSP runs the Servlet which gets a parameter from the JSP and returns the exact same input field's value. For some reason, it is returning a null though. Can someone please assist?

Servlet:

package Web;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;

public class fieldProcessing extends HttpServlet {

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        Date time = new Date();
        int i = 0;
        String uN = request.getParameter("username");
        try {
            out.println(uN);
            //out.println(time.getHours() + ":" + time.getMinutes() + ":" + time.getSeconds() + " Num: " + ++i + " ya");
        } finally {
            out.close();
        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}

JSP:

<html>
    <head>
        <title></title>
        <script type="text/javascript">
            function init(){
                window.setInterval("ajaxFunction()",1000);
            }

            function ajaxFunction() {
                var xmlhttp;
                if (window.XMLHttpRequest) {
                    // code for IE7+, Firefox, Chrome, Opera, Safari
                    xmlhttp=new XMLHttpRequest();
                }
                else if (window.ActiveXObject) {
                    // code for IE6, IE5
                    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                }
                else {
                    alert("Your browser does not support XMLHTTP!");
                }
                xmlhttp.onreadystatechange=function() {
                    if (xmlhttp.readyState==4) {
                        document.myForm.time.value=xmlhttp.responseText;
                        document.getElementById("testText").rows[0].cells[0].innerHTML=xmlhttp.responseText;
                    }
                }
                xmlhttp.open("GET","fieldProcessing",true);
                xmlhttp.send(null);
            }
        </script>
    </head>
    <body onload="init();">
        <form name="myForm">
            Name: <input type="text" name="username" onkeyup="ajaxFunction();" />
            Time: <input type="text" name="time" />
            <table border="1" id="testText">
                <tr>
                    <td>
                        I bet you $20 this will change soon!
                    </td>
                </tr>
            </table>
        </form>
    </body>
</html>

I created this in Netbeans, I'm sure it would work if you just created a new Servlet and titled it "fieldProcessing.java" and a new JSP and titled it "index.jsp".

Thanks!
-Ashton.

2
Contributors
4
Replies
5
Views
8 Years
Discussion Span
Last Post by AshtonHogan
This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.