2013-01-22 15 views
1

我有一个调用servlet的问题,所以我需要帮助。 这里是我的web.xml
我的程序总是调用默认的servlet

<servlet> 
     <servlet-name>spring</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>spring</servlet-name> 
     <url-pattern>/test/*</url-pattern> 
    </servlet-mapping> 
    <servlet> 
     <servlet-name>ajaxServlet</servlet-name> 
     <servlet-class>org.finki.exercise.servlet.AjaxServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>ajaxServlet</servlet-name> 
     <url-pattern>/ajaxServlet/*</url-pattern> 
    </servlet-mapping></servlet> 

我有一个jsp页面测试的目的,在这里我AMM试图从阿贾克斯

<a href="#" onclick="loadXMLDoc('eva')">proba</a> 

AJAX乐趣

function loadXMLDoc(value1) 
      { 
       var xmlhttp; 

       var url="ajaxServlet"; 
       if (window.XMLHttpRequest) 
       { 
        xmlhttp=new XMLHttpRequest(); 
       } 
       else 
       { 
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
       } 
       xmlhttp.onreadystatechange=function() 
       { 
        if (xmlhttp.readyState==4 && xmlhttp.status==200) 
        { 

         document.getElementById("mid_title").innerHTML=xmlhttp.responseText; 
        } 
       } 

       xmlhttp.open("GET", url+"?url="+value1, true); 
       xmlhttp.send(); 
      } 

函数调用的servlet loadXMLDoc调用调度程序servlet http://localhost:8097/mavenproject1/test/ajaxServlet
如何调用ajaxServlet - http://localhost:8097ajaxServlet ???

谢谢!

回答

4

ajaxServlet没有领先的/,因此它被解释为相对路径。因此,如果您从http://localhost:8097/mavenproject1/test/fooajaxServlet发送请求,请求将发送至http://localhost:8097/mavenproject1/test/ajaxServlet

所以,您需要添加领先的/。但这还不够,因为您还需要添加应用程序的上下文路径(/mavenproject1)。在JSP页面,您可以如下(假设您导入JSTL标签库)自动执行:

var url= "<c:url value = "ajaxServlet" />"; 
+0

迅速非常感谢您对您answer.That是problem.Thanks,现在的工作:) –

0

这是因为您使用的是相对链接,字ajaxServlet开始。尝试代替

var url = "../ajaxServlet"; 

或许,假设你有提供给您JSTL,

var url = "${pageContext.request.contextPath}/ajaxServlet"; 
+0

谢谢为了您的答案,我使用了$ {pageContext.request.contextPath}/ajaxServlet lika ajax中的一个参数:) –