如何使用ajax从javascript调用servlet

时间:2014-11-25 12:51:10

标签: javascript ajax jsp servlets

我正在做一个samall jsp页面来搜索在文本框中输入的名称..我从jsp调用了javascript函数.. bello是javascript代码

function fncStudsearch()
{
//alert("yes")
var ele=document.getElementById("stdSearch").value;
var xmlhttp;
var strAjUrlData="stdSearch?key="+ele;
//alert(strAjUrlData)
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)
{

}
  else
  {
  alet(xmlhttp.status);
  }
 }
  xmlhttp.open("GET",strAjUrlData,true);
      xmlhttp.send();

  }

我正在调用servlet ..我按如下方式配置了web.xml       

   <servlet>  
      <servlet-name>stdSearch</servlet-name>
       <servlet-class>com.slokam.Act.StudentSearch</servlet-class>
  </servlet>

<servlet-mapping>
     <servlet-name>stdSearch</servlet-name>
     <url-pattern>/stdSearch</url-pattern>
</servlet-mapping>

</web-app>


我无法去servlet课程 和我编写的servlet代码是

   public class StudentSearch extends HttpServlet {


   private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub

    String stdkey=request.getParameter("key");
    stdkey="%"+stdkey+"%" ;
    System.out.println(stdkey);
  }
}

请在这方面帮助如何转到servlet

2 个答案:

答案 0 :(得分:1)

如果应用程序未在appserver上部署为根应用程序,则可能需要在您调用的URL中使用上下文路径:

var ctx = "${pageContext.request.contextPath}/";
var strAjUrlData=ctx+"stdSearch?key="+ele;

...

此代码假定您使用的是jsp 2.0和EL

答案 1 :(得分:0)

可能这有帮助,有一个javascript错误:

alet(xmlhttp.status); // you're missing here `r`

alert(xmlhttp.status);

其次,你必须从servlet中打印出一些内容,然后使用PrintWriter。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String stdkey=request.getParameter("key");
    stdkey="%"+stdkey+"%" ;
    // test purpose
    PrintWriter pw = response.getWriter ();
    pw.print(stdkey);
    pw.close();
}