Java 如何使我的网站与servlet通信?

Java 如何使我的网站与servlet通信?,java,ajax,html,servlets,Java,Ajax,Html,Servlets,我已经创建了一个web应用程序,它获取JqTree“坐标”,并将这些坐标var POSITIONS发送到我的服务器,由我的servlet获取,该servlet将创建一个包含这些“坐标”的文件,但是,我不知道如何进行此通信。你能帮我吗 提前谢谢 我在下面做了一张图表来解释我的想法 1-用户更改树 2-通过此代码立即获得位置 $(document).ready(function() { var POSITIONS; //var data is a dynamic JSON file that

我已经创建了一个web应用程序,它获取JqTree“坐标”,并将这些坐标
var POSITIONS
发送到我的服务器,由我的servlet获取,该servlet将创建一个包含这些“坐标”的文件,但是,我不知道如何进行此通信。你能帮我吗

提前谢谢

我在下面做了一张图表来解释我的想法

1-用户更改树

2-通过此代码立即获得位置

$(document).ready(function() {

var POSITIONS;

//var data is a dynamic JSON file that should be created in the backend.
var data = [{
    label: 'node1',
    id: 1,
    children: [{
        label: 'child1',
        id: 2
    }, {
        label: 'child2',
        id: 3
    }]
}, {
    label: 'node2',
    id: 4,
    children: [{
        label: 'child3',
        id: 5
    }]
}];
$('#tree1').tree({
    data: data,
    autoOpen: true,
    dragAndDrop: true
});


console.log($('#tree1').tree('toJson')); //This will give you the loading jqtree structure.

$('#tree1').bind(
    'tree.move',
    function(event) {
        event.preventDefault();
        // do the move first, and _then_ POST back.
        event.move_info.do_move();
        console.log($(this).tree('toJson')); //this will give you the latest tree.
        POSITIONS = $(this).tree('toJson');
        alert(POSITIONS);
        $.post('http://MyServer', {
            tree: $(this).tree('toJson')
        });
        alert("done"); //this will post the json of the latest tree structure.
    }
);


});
3-那么它应该由AJAX发送

$(function() {
alert("file has been successfully sent");
var data = new FormData();
data.append("custom_css", POSITIONS);
$.ajax({
    url: 'myserver',
    type: 'POST',
    data: data,
    cache: false,
    dataType: 'json',
    processData: false,
    contentType: false,
    success: function(response) {
        alert("file has been successfully sent");
    },
    error: function(jqXHR, textStatus, errorThrown) {
        alert('ERRORS: ' + textStatus);
    }
});

});
4-最终被我的servlet接收并保存到一个文本文件:Positions.txt

package com.srccodes.example;
导入java.io.IOException;
导入java.io.PrintWriter;
导入javax.servlet.ServletException;
导入javax.servlet.annotation.WebServlet;
导入javax.servlet.http.HttpServlet;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
/**
*Servlet实现类HelloWorld
*/
@WebServlet(“/HelloWorld”)
公共类HelloWorld扩展了HttpServlet{
私有静态最终长serialVersionUID=1L;
/**
*@参见HttpServlet#HttpServlet()
*/
公共HelloWorld(){
超级();
//TODO自动生成的构造函数存根
}
/**
*@参见HttpServlet#doGet(HttpServletRequest请求,HttpServletResponse响应)
*/
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
response.setContentType(“text/html”);
PrintWriter PrintWriter=response.getWriter();
printWriter.println(“你好,世界!”);
String position=“JQTREE POSITIONS”;
PrintWriter=新的PrintWriter(“Positions.txt”、“UTF-8”);
作者:println(职位);
writer.close();
}
/**
*@请参阅HttpServlet#doPost(HttpServletRequest请求,HttpServletResponse响应)
*/
受保护的void doPost(HttpServletRequest请求、HttpServletResponse响应)引发ServletException、IOException{
//TODO自动生成的方法存根
}
}
  • 您的.ajax url应该与@WebServlet()映射匹配。在您的情况下,
    “/HelloWorld”
  • 因为您正在发布数据,所以应该重写servlet中的
    doPost()
    方法
  • 最后,在您的
    doPost()
    方法中,从
    “custom\u css”
    变量中检索数据,如<代码>请求.getParameter(“自定义css”)
  • 继续进行其余的业务逻辑




  • 抱歉,我没有在线,但我现在要测试:)+1抱歉,但我仍然有一些疑问:1-我如何从
    var Positions
    ,2-我应该将我的页面放在哪个目录中3-我必须将其导出为war文件并将其放在我的服务器(而不是桌面服务器)告诉我你需要知道的关于我正在做的事情,我搜索了很多,但是没有人谈论细节。我想,我给了你答案:request.getParameter(“custom_css”)将为你提供var位置数据。像你通常为web应用程序所做的那样,将整个事情部署为一场战争。
    package com.srccodes.example;
    
    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;
    
    
    /**
    * Servlet implementation class HelloWorld
    */
    @WebServlet("/HelloWorld")
    public class HelloWorld extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloWorld() {
        super();
        // TODO Auto-generated constructor stub
    }
    
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter printWriter  = response.getWriter();
        printWriter.println("<h1>Hello World!</h1>");
    
        String position = "JQTREE POSITIONS";
        PrintWriter writer = new PrintWriter("Positions.txt", "UTF-8");
        writer.println(position);
        writer.close();
    }
    
    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }
    
    }
    
    $.ajax({
        url: '/HelloWorld',
        type: 'POST',
        data: data,
        cache: false,
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.getParameter("custom_css")
    
    // Proceed with your business logic here, using above data
    //
    //
    //
    //
    }