Отправка нескольких объектов в сервлет Java с помощью JavaScript - PullRequest
0 голосов
/ 23 апреля 2019

Итак, у меня есть то назначение на основе ajax, которое отправляет объект через JavaScript в сервлет Java. У меня вопрос - как мне сделать это с несколькими объектами?

Цель состоит в том, чтобы отправить данные из JS (проверить данные) в Java (вычислить результат), а затем снова в JS (печать из устройства вставки).

function validate() {
    var num1  = document.getElementById("firstIn");
    var data = "firstIn="+ encodeURIComponent(num1.value);

// var num2 = document.getElementById("secondIn");  //want to send this one as well

    if (typeof XMLHttpRequest != "undefined") {
        req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }

    var url = "Main";
    req.open("POST", url, true);        
    req.onreadystatechange = inserter();
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    req.send(data); //Want to send multiple objects

}

==============================================================================

function inserter(){
    if (req.readyState == 4) {
        if (req.status == 200) {
            var msg = req.responseText;
                document.getElementById("msg").innerHTML = "<div>"+msg+"</div>";
}}}
@WebServlet("/add")
public class Main extends HttpServlet {

    public static boolean isNumeric(String str) {
        return str.matches("-?\\d+(\\.\\d+)?");
    }

        @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        resp.setContentType("text/html");
          resp.setHeader("Cache-Control", "no-cache");
        if (isNumeric(req.getParameter("firstIn")) && isNumeric(req.getParameter("secondIn"))) {
            int one = Integer.valueOf(req.getParameter("firstIn"));
            int two = Integer.valueOf(req.getParameter("secondIn"));
            int sum = one + two;
            String result = Integer.toString(sum);
            resp.getWriter().write("result is " + sum);
        } else {
            resp.getWriter().write("Wrong values");
        }
    }
}

Пробовал что-то вроде:


//Splitting into two datas:
var data1 = "firstIn="+ encodeURIComponent(num1.value);
var data2 = "secondIn="+ encodeURIComponent(num2.value);
send({data1, data2};

//Putting objects in one data:
var data = "firstIn="+ encodeURIComponent(num1.value) + ", " +"secondIn="+ 
encodeURIComponent(num2.value);
send(data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...