使用Ajax从jQuery调用servlet而不是使用eclipse

时间:2013-06-17 00:32:35

标签: javascript jquery ajax servlets

我使用eclipse IDE开发了一个应用程序,它使用$ .ajax()从jQuery调用servlet POST方法。现在我需要在服务器上部署此应用程序。 直到我在eclipse IDE中使用这个应用程序它工作正常但是当我将所有文件复制到服务器时,jQuery在ajax请求中给出了错误。所以我想知道为了在不使用eclipse IDE的情况下从ajax调用servlet我们应该遵循的所有内容。 这是我在日食中使用的代码,它正常工作。我需要知道应该进行哪些修改才能使这些文件在服务器中正常工作。

我的HTML代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

  <head>
    <title>Demo</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.0.min.js"></script>
    <script type="text/javascript" src="newJs.js"></script>
  </head>
  <body>
    <button type="button" id="search-button" >button</button>
  </body>
</html>

我的javascript文件包含jQuery $ .ajax()调用

$(function(){
            alert("loaded");
            page.init();

        });

var page = {
    addEvent:function(){
        alert("here");
        page.controls.searchButton.click(page.handlers.onSearchButtonClick);
    },
    handlers:{
        onSearchButtonClick: function(){
            alert("hi");
            var msg = [1,2,3,4];
            $.ajax({
                url : "simpleServer",   

                data : {
                    msg:msg
                },
                type:"POST",

                success : function(data){

                    alert("called "+data);
                },

                error: function(xhr, status){
                    alert("error : "+status);
                },
                complete: function(xhr, status){
                    alert("complete"+status);
                }

            });
        }
    },
    controls:{
    },
    init: function(){       
        page.controls.searchButton = $('#search-button');
        page.addEvent();
    }
};

我的servlet代码:

 import java.io.IOException;
 import java.io.PrintWriter;
 import javax.servlet.ServletException;
 import javax.servlet.annotation.WebServlet;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;

 @WebServlet("/simpleServer")
 public class simpleServer extends HttpServlet {
private static final long serialVersionUID = 1L; 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {   }

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

    String[] rcvData = request.getParameterValues("msg[]");

    System.out.println("post method "+rcvData.length);
    for(int i=0;i<rcvData.length;i++){
        System.out.println(rcvData[i]);
    }

    PrintWriter pw = response.getWriter();
    pw.write(" Hi welcome to you \n\n");
   }

  }

我的web.xml文件是

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web- app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
 <servlet>
    <servlet-name>simpleServer</servlet-name>
    <servlet-class>simpleServer</servlet-class>     
 </servlet>
 <servlet-mapping>
    <servlet-name>simpleServer</servlet-name>
    <url-pattern>/simpleServer</url-pattern>
 </servlet-mapping>
</web-app>

请让我知道我应该通过服务器上的ajax调用来运行servlet。

谢谢

1 个答案:

答案 0 :(得分:1)