Invia object JS alla pagina JSP

Ho un object JS in un file JavaScript. Devo passare questo object a una pagina JSP. La pagina raccoglie questo object e le elabora. Come posso farlo?

Allo stesso modo si ottiene qualsiasi altro dato da un browser Web a un server HTTP.

Codificarlo in una richiesta HTTP inviando un module / impostazione della posizione della window / utilizzando XMLHttpRequest / ecc.

Ci sono un paio di problemi che è necessario risolvere per primo, lo fai in uno stile AJAX di richiesta? è una presentazione di module? ci sarà l'interazione in corso all'interno della session di pagina tra il client / server che passa gli oggetti JSON avanti e indietro?

Consente di affrontare il semplice caso di una presentazione di un module, una volta che si ottiene che si dovrebbe essere in grado di get i rimanenti casi andare in quanto sono semplicemente "estensioni" di questo caso di base. Dire che hai qualche forma che invierà i dati in qualche field:

<form name='my_form' id='my_ford_id'> <input type='hidden' name='my_input_field' /> </form> 

allora ad un certo punto avete un codice che esegue e hai l'object JSON

 function myFunction() { var json_data = getJsonData(); document.forms['my_form']['my_input_field'].value = json_data; document.forms['my_form'].submit(); } 

Quindi, sul lato JSP, riceverai questi dati come una string JSON all'interno di un field di module, a questo punto dovrai elaborarlo, supponendo che tu abbia una libreria JSON disponibile, il codice potrebbe sembrare qualcosa di simile :

 <% String myInputField = request.getParameter("my_input_field"); if(myInputField != null) { try { JSONObject myObject = new JSONObject(myInputField); } catch(JSONException e) { } } %> 

Se hai bisogno di uno stile di interazione "AJAX", farai una serie di tali richieste nella pagina, ma fondamentalmente ricade sul problema originale di presentazione dei dati. Poiché usi i moduli in questo esempio e JSP, non devi preoccuparti in alcun modo della codifica, il browser / server si occuperà di cose per te.

Quando si invia l'object json, il servlet lo riceve allo stesso modo di ricevere i dati inviati inviando il module, ad esempio se si invia una variabile "azione" con value = "getCountries"

 var option={ "action":"getCountries" }; $.getJSON('YourServlet',option, function() { //hadle the result returned by servlet }); 

Il metodo defualt è GET, nel servlet si maneggia la richiesta mentre gestisci una normale richiesta

  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String action = request.getParameter("action"); if (action != null) { if (action.equals("getCountries")) { List coutries= getAllICountries(request); //get the countries String json = new Gson().toJson(coutries); response.setContentType("application/json"); response.setCharacterEncoding("utf-8"); response.getWriter().write(json); return; } } 

Notare come restituire il risultato da servlet a javascript, restituireamo un object json.

Il sito "JSON" ti aiuta a gestire Json Objects in JSp / java. Devi convertire la string ottenuta da javascript in un object json.