Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 24.01.2017
Сообщений: 37

Jquery ajax servlet что то пошло не так

05.03.2017, 18:34. Показов 835. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
суть вопрос, не могу получить параметры из ajax запроса.
Программа считает квадратные уравнения. пользователь вводит коэффициенты... их мне и надо достать в сервлете, но не срастается. Прошу помощи.

index.jsp
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
  Created by IntelliJ IDEA.
  User: dima
  Date: 23.02.17
  Time: 15:00
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <title>UI first ex. by Dima</title>
  <style><%@ include file="css/main.css"%></style>
  <script><%@include file="/js/jquery-3.1.1.min.js"%></script>
  <script><%@include file="/js/check.js"%></script>
</head>
<body>
<div id = "main">
 
  <div class = "arithmetic">
    <form id = "mainForm" method="post">
      <script>check()</script>
      <p>Please input your coeff.</p>
      <input type="text" class="text" id = "a" name= "a" placeholder="a" >
      x<sup>2</sup> +
      <input type="text" class="text" id = "b" name= "b" placeholder="b" >
      x +
      <input type="text" class="text"  id ="c" name= "c" placeholder="c" >
      = 0
      <p><input type="submit" class="Button" id="myButton" id = "myButton" value="Enter"></p>
    </form>
  </div>
 
  <div class  = "result">
    <table id="myTable" frame="void" cellpadding="10" border="1" width="150%">
    <caption>Table results of request</caption>
    <tr>
      <th>Num of  request</th>
      <th>coeff x<sup>2</sup></th>
      <th>coeff x</th>
      <th>free coeff</th>
      </tr>
    </table>
  </div>
 
</div>
<%
  if (session.getAttribute("errorMessage")!= null){
    out.println("<script type = \"text/javascript\">\n" +
            " $(document).ready(function(){ \n" +
            "    alert( '" +session.getAttribute("errorMessage") + "' );\n" +
            "  });\n" +
            "</script>");
  }
%>
</body>
</html>
MainServlet
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package servlets;
 
import com.dima.Equation;
import org.codehaus.jackson.map.ObjectMapper;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
 
/**
 * Created by dima on 23.02.17.
 */
public class MainServlet extends HttpServlet {
 
    private Float a = 0f;
    private Float b = 0f;
    private Float c = 0f;
    private Float sqFirst = 0f;
    private Float sqSecond = 0f;
 
    ObjectMapper mapper = new ObjectMapper();
    private final String errorMessage = "Sorry, but for this coeff. have no any sq";
 
    private Equation equation;
 
    /*@Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }*/
 
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 
        if (request.getSession().getAttribute("errorMessage") != null){
            request.getSession().removeAttribute("errorMessage");
        }
 
 
        /*equation = mapper.readValue((String)request.getSession().getAttribute("data"),Equation.class);
 
 
        /*вот тут получаю null - а ведь должны быть цифирьки!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/
        System.out.println(request.getParameter("a"));
        System.out.println(request.getParameter("b"));
        System.out.println(request.getParameter("c"));
        
 
 
        /*считаем дискриминант*/
        Float d = (float)Math.pow(b,2) - 4*a*c;
 
        /*
        если дискр. меньше ноля - решение не имеет действительных корней, надеюсь,
        решение уравнение без дейстиительных корней не укладывается в рамки этого задания
        */
 
        
        if (d < 0){
            request.getSession().setAttribute("errorMessage",errorMessage);
            equation = new Equation(a,b,c,"discriminant is less than zero");
        }else if (d==0){
            sqFirst = sqSecond = -b/(-2*a);
            equation = new Equation(a,b,c,sqFirst,sqFirst);
        }else{
            sqFirst = -b + (float)(Math.sqrt(d))/2*a;
            sqSecond = -b - (float)(Math.sqrt(d))/2*a;
            equation = new Equation(a,b,c,sqFirst,sqSecond);
        }
 
        /*переводим ответ в json*/
        mapper.writeValueAsString(equation);
 
        response.setContentType("application/json");
        response.setCharacterEncoding("UTF-8");
        System.out.println(equation);
        response.getWriter().write(mapper.toString());
    }
}

check.js
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
/**
 * Created by dima on 03.03.17.
 */
function check(){
    $(document).ready(function() {
        var globalIsValid = false;
 
        $(".arithmetic").on("keypress keyup blur",function (e) {
            $(this).val($(this).val().replace(/[^0-9\.]/g,''));
            if ((e.which != 46 || $(this).val().indexOf('.') != -1) && (e.which < 48 || e.which > 57)) {
                event.preventDefault();
            }
        });
 
        $('#myButton').click(function(e) {
            var isValid = true;
            $('input[type="text"]').each(function() {
                if ($.trim($(this).val()) == '') {
                    isValid = false;
                    $(this).css({
                        "border": "1px solid red",
                        "background": "#FFCECE"
                    });
                }
                else {
                    $(this).css({
                        "border": "",
                        "background": ""
                    });
                    isValid = true;
                }
            });
            if (isValid == false){
                e.preventDefault();
            }
            globalIsValid = isValid;
        });
 
 
        $("#myButton").click(function(e){
 
            e.preventDefault();
 
            if (globalIsValid){
 
                // setup some local variables
                var $form = $(this);
                // let's select and cache all the fields
                var $inputs = $form.find('input, textarea, select');
                // serialize the data in the form
                var serializedData = $form.serialize();
 
                // disable the inputs for the duration of the ajax request
                $inputs.prop("disabled", true);
 
                var request = $.ajax({
                    url: "/Main",
                    type: "post",
                    contentType: "application/json", // NOT dataType!
                    data: serializedData
                });
 
                /*$.ajax({
                    url: "/Main",
                    type: "post",
                    contentType: "application/json", // NOT dataType!
                    data: serializedData,
                    success: function (response) {
                        // you will get response from your php page (what you echo or print)
                        alert(response);
 
                    },
                    error: function(jqXHR, textStatus, errorThrown) {
                        console.log(textStatus, errorThrown);
                    }
 
                });*/
 
                /*
                // callback handler that will be called on success
                request.done(function (response, textStatus, jqXHR){
                    // log a message to the console
                    console.log("Hooray, it worked!");
                });
 
                // callback handler that will be called on failure
                request.fail(function (jqXHR, textStatus, errorThrown){
                    // log the error to the console
                    console.error(
                        "The following error occured: "+
                        textStatus, errorThrown
                    );
                });
 
                // callback handler that will be called regardless
                // if the request failed or succeeded
                request.always(function () {
                    // reenable the inputs
                    $inputs.prop("disabled", false);
                });
 
                // prevent default posting of form
                event.preventDefault();
                */
 
                $("#mainForm").trigger("reset");//form clear after submitting
 
                alert("ok");
            }
        });
    });
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.03.2017, 18:34
Ответы с готовыми решениями:

Что-то пошло не так
Не подскажите почему getlline не работает. Вместо ожидаемого ввода от пользователя, просто выводит мусор #include &lt;iostream&gt; ...

Что то пошло не так
Доброго времени суток. Собрал компьютер с такой конфигурацией: Материнская плата : MSI H110M PRO-D Процессор : Intel Pentium G4560 ...

что-то пошло не так
Помогите пожалуйста, after слипит не время до выполнения функции, а главное окно. import os from tkinter import* root=Tk() ...

1
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
06.03.2017, 03:56
Дебаггер смотри, что в сервлет приходит, в браузере смотри, что отправляется
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.03.2017, 03:56
Помогаю со студенческими работами здесь

Что-то пошло не так
Всем доброго времени суток. Случилась такая беда: частенько при работе с тырнетом приходится переключаться по нескольку раз между...

Что-то пошло не так
Есть 3 массива. Первый - содержит строки файла. Второй - Ник-Нейм. Третий - Число. Необходимо сложить числа у одинаковых ник-неймов. Вроде...

Что-то пошло не так(
Подскажите пожалуйста! На странице регистрации, появилась надпись &quot;На указанный в форме e-mail придет запрос на подтверждение...

что-то пошло не так
здравствуйте, что-то браузеры лагают,опера вовсе не запускается, а гугл лагает во время переключений вкладок, бывает вплоть до зависания

Что-то пошло не так
дано n найти все перестановки я вроде написал, но что то не работает плиз помогите найти ошибку )_/\_ _/\_ #include &lt;stdio.h&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru