2015-06-29 2 views
1

Я создал веб-приложение, которое получает «координаты» JqTree и отправляет эти координаты var POSITIONS на мой сервер, чтобы получить мой сервлет, который создаст файл, содержащий эти «координаты», однако Я не знаю, как Я собираюсь сделать это сообщение. Не могли бы вы помочь мне?Как я могу связать свой сайт с моим сервлетом?

Заранее спасибо.

Я сделал вид диаграммы прямо ниже, объясняя свою идею.

1 - пользователь изменяет дереву enter image description here

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 - И, наконец, получил мой сервлет и сохранить в текстовом файле: Positions.txt

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 
} 

} 

ответ

2
  1. Ваш .ajax URL должен совпадать с @WebServlet() отображение. В вашем случае "/HelloWorld"
  2. Поскольку вы находитесь POST Ввод данных, вы должны переопределить метод doPost() в своем сервлете.
  3. Наконец в методе doPost(), извлекать данные из "custom_css" переменных как .. request.getParameter("custom_css")
  4. Продолжите с остальной частью бизнес-логики.


$.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 
// 
// 
// 
// 
} 
+0

К сожалению, я не в сети, но я собираюсь попробовать прямо сейчас :) +1 – Kyle

+0

Извините, но я до сих пор некоторые сомнения: 1 - Как получить данные из 'var Positions', 2 - в какую директорию я должен поместить свою страницу в 3 - Должен ли я экспортировать ее в качестве военного файла и поместить ее на свой сервер (не на моем настольном сервере) – Kyle

+0

Скажите мне все, что вам нужно знать о том, что я делаю, я много искал, но никто не говорит о деталях. – Kyle

Смежные вопросы