Javascript 从属性文件ajax mvc获取处理程序

Javascript 从属性文件ajax mvc获取处理程序,javascript,ajax,jsp,servlets,model-view-controller,Javascript,Ajax,Jsp,Servlets,Model View Controller,我正在尝试使用ajax验证我的数据库中是否有任何类似的电子邮件输入。我使用的mvc模式没有任何框架。正如您所看到的,我的控制器是一个servlet,它读取名称并使用属性文件进行验证,然后为每个事件调用特定的处理程序。它向我显示了一个错误,因为url导致事件始终为空参数位于ajaxxmlhttp.open 属性文件 SIGNUP = events.SignUpEventHandler AJAX= events.EventAjaxMail 控制器 package controlle

我正在尝试使用ajax验证我的数据库中是否有任何类似的电子邮件输入。我使用的mvc模式没有任何框架。正如您所看到的,我的控制器是一个servlet,它读取名称并使用属性文件进行验证,然后为每个事件调用特定的处理程序。它向我显示了一个错误,因为url导致事件始终为空参数位于ajaxxmlhttp.open

属性文件

    SIGNUP = events.SignUpEventHandler
    AJAX= events.EventAjaxMail
控制器

package controller;
import events.EventHandlerBase;
import java.io.IOException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.ResourceBundle;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


public class Controller extends HttpServlet {

     protected HashMap events= new HashMap();

     public void init() throws ServletException{

      // get the event values and save them into events
      ResourceBundle bundle = ResourceBundle.getBundle("Event");
      Enumeration e = bundle.getKeys();

        while(e.hasMoreElements()) {
           String key = (String) e.nextElement();
           String value = bundle.getString(key);
           try {
                EventHandlerBase event =
                (EventHandlerBase) Class.forName(value).newInstance();
                events.put(key, event);
                System.out.println(this + "init event"+key+ "Handler: "+ event.getClass().getName());

                } catch(Exception exc) {
                    System.out.println("NO HANDLER FOUND!");
                    exc.printStackTrace();
            }
        }


    }

     public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }


    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {      


        //get session if the server sent one to the browser
        HttpSession session = request.getSession(false);

        //case that no session found, start new
        if (session == null) {
            session = request.getSession();
        }

        String event = validateEvent(request);

        EventHandlerBase handler = getEventHandler(event);

        try {
            handler.process(session, request, response);
        } catch (Exception e) {
            e.printStackTrace();
            //handler = getEventHandler("UNKNOWN_EVENT");
        }


        handler.forward(request, response);
    }

    protected String validateEvent(HttpServletRequest request) {
        String event = request.getParameter("event");
        System.out.println("\n\nevent= "+event);

        if (event == null || !events.containsKey(event)) {
        //event = Events.UNKNOWN.toString();
            System.out.println("UNKNOWN_EVENT EGINE");
            event="UNKNOWN_EVENT";

        }

        return event;
     }

    protected EventHandlerBase getEventHandler(String e) {
            EventHandlerBase h;
            try {
            h = (EventHandlerBase) events.get(e);
            } catch(Exception exc) {
            h = (EventHandlerBase)events.get("UNKNOWN_EVENT");
            }
            //System.out.println("to h sto getEventHandler: "+ h.getClass().getName());

            return h;
    }



  }
JSP、AJAX和JAVASCRIPT

<form class="form-horizontal" id="signup_form" action="controller_servl" method="post">
     <div class="form-group">
        <label for="registeremail" class="col-sm-2 control-label">Email</label>
        <div class="col-sm-8">
            <input type="text" class="form-control" id="registeremail" name="email_n" placeholder="someone@hotmail.com" onchange="getStates(this.value)" required>
        </div>
    <div class="" id="message"></div>

     </div>

</form> 

<script>
    function getStates(registeremail)
{

    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null)
    {
       alert ("Browser does not support HTTP Request")
        return
    }
    else
    {

        var url="controller_servl?value=LOGIN&registeremail="+registeremail;
        //creating callback method.here countrychanged is callback method
        xmlHttp.onreadystatechange=countryChanged

        xmlHttp.open("GET",url,true)
        xmlHttp.send(null)
    }

}
    </script>
在该url中,我需要一个name=event和value=AJAX,以便控制器能够处理该事件

更新

我已经编辑了如下所示的网址,这是有效的。这是正确的解决方案吗?

在何处以及如何调用GetState?