Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Что значит MonitorRequestWraper и почему я не получаю параметров из request? / 25 сообщений из 37, страница 1 из 2
23.08.2014, 18:09
    #38727293
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
Привет!

Я работаю в NetBeans и я написал JS для отправки запроса на сервер:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
function applyFilter(){
        idFilterJS = getRadioValue();
        var url = "applyfilter?action=applyfilterXML&id=" + idFilterJS;
        req = initRequest();
        req.open("GET", url, true);
        req.onreadystatechange = applyFilterCallBack;
        req.send(null);
    }



Дальше, я установил breakpoint для сервлета:

Код: java
1.
2.
3.
4.
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        session = request.getSession();
        String action = request.getParameter("action");
}



В итоге, отладчик показывает тип для request - MonitorRequestWraper. Почему не HttpServletRequest?

В переменной action записан null. Почему?

Спасибо.
...
Рейтинг: 0 / 0
23.08.2014, 22:34
    #38727346
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
mr_virtus,
- урл должен быть полный
- проверь отправку в отладчике JS

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
function AjaxPost(urlPost) {
    var xmlHttp = getXmlHttp();
	//alert(urlPost);
	xmlHttp.open("POST", urlPost, false);
	xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	try {
		xmlHttp.send(null);
	  	if(xmlHttp.status == 200) {
			return "";
		}else{
	        var sErr = "(" + String(xmlHttp.status)+ ")";
	        return sErr;
		}
	} catch (e) {
        return "(ajax)";
	}
}
...
Рейтинг: 0 / 0
24.08.2014, 13:33
    #38727472
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
Petro123,

что значит полный?

у меня же get. Через get нельзя что ли отправить?
...
Рейтинг: 0 / 0
24.08.2014, 19:53
    #38727607
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
mr_virtus,
там ещё было про отладчик JS
...
Рейтинг: 0 / 0
24.08.2014, 20:33
    #38727615
Alexander A. Sak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
mr_virtus
В итоге, отладчик показывает тип для request - MonitorRequestWraper. Почему не HttpServletRequest?


MonitorRequestWraper -- класс, HttpServletRequest -- интерфейс. Меня терзают смутные подозрения, что MonitorRequestWraper implements HttpServletRequest.

По поводу null. Этот метод действительно такой? Может, интеллект нынешних компиляторов достиг того, что ненужные присвоения даже код не генерят? Я обычно логгированию больше доверяю.
Еще вариант -- разные буквы в слове "action". Например, в одном месте "а" русская, в другом нет.
...
Рейтинг: 0 / 0
25.08.2014, 11:43
    #38727955
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
Petro123,

в отладчике создается две переменные:

url: "applyfilter?action=applyfilterXML&id=6"
req: XMLHttpRequest

То есть все вроде как прилично.

В чем может быть причина?
...
Рейтинг: 0 / 0
25.08.2014, 11:45
    #38727958
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
Alexander A. Sak,

авторПо поводу null. Этот метод действительно такой? Может, интеллект нынешних компиляторов достиг того, что ненужные присвоения даже код не генерят? Я обычно логгированию больше доверяю.

Что значит "метод действительно такой"? Можно поподробней?

авторЕще вариант -- разные буквы в слове "action". Например, в одном месте "а" русская, в другом нет.

Нет, дело не в этом.
...
Рейтинг: 0 / 0
25.08.2014, 11:48
    #38727963
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
mr_virtusТо есть все вроде как прилично.
я выше привел код из рабочего проекта. Переведи его на POST и проверь все свои баги и получение параметров в сервлете.
Это дело 10 минут.
ЗЫ. Полный урл я имел ввиду - полностью с http//......
...
Рейтинг: 0 / 0
25.08.2014, 12:03
    #38727981
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
Petro123,

добавил полный url, результат тот же.

А ваш код - он же post, а отличается от моего только на строчку:

xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

Я её добавил, но не помогло..
...
Рейтинг: 0 / 0
25.08.2014, 12:08
    #38727984
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
mr_virtus,
- там есть обработка ошибок. Напр. код ошибки HTTP, когда сервлет просто не найден.
Давай сюда минимальный свой код на POST ещё раз.
Вставь проверку в логи и сюда логи.
Скорее всего ошибка банальная из-за невнимательности.
...
Рейтинг: 0 / 0
25.08.2014, 12:10
    #38727987
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
mr_virtus,
в логи на сервере. На клиенте через Alert
...
Рейтинг: 0 / 0
25.08.2014, 12:16
    #38727993
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
Petro123,

вот 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.
var idFilterJS;
var isIE;
var eventsTable;
var req;

function applyFilter(){
    idFilterJS = getRadioValue();
    var url = "http://applyfilter?action=applyfilterXML&id=" + idFilterJS;
    req = initRequest();
    req.open("GET", url, true);
    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    req.onreadystatechange = applyFilterCallBack;
    req.send(null);
}

function getRadioValue() {
    var inputs = document.getElementsByName("filter");
    for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].checked) {
            return inputs[i].value
        }
    }
}

function initRequest(){
    if (window.XMLHttpRequest) {
        if (navigator.userAgent.indexOf('MSIE') != -1){
            isIE = true;
        }
        return new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        isIE = true;
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
}



А вот откуда он вызывается .jsp:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<div id="filters-list">
        <form name="applyfilter" action="applyfilter">
            <fieldset>
                <legend>Filters</legend>
                <%
                    for (int i = 0; i < userFilters.size(); i++) {
                %>
                <input type="radio" name="filter"
                       value="<%=userFilters.get(i).getId()%>"><%=userFilters.get(i).getName()%>
                <br/>
                <%
                    }
                %>
                <button onclick="applyFilter();">Apply</button>
                
                <!--<button onclick="deleteFilter();">Delete filter</button>-->
            </fieldset>
        </form>
    </div>



А логи для томката смотреть? У меня в
C:\Program Files\Apache Software Foundation\Apache Tomcat 8.0.3\logs пусто.
...
Рейтинг: 0 / 0
25.08.2014, 12:19
    #38727997
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
mr_virtus,

вот сервлет:
Код: 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.
public class ApplyFilterServlet extends HttpServlet {

    private ServletContext context;
    private List<EventTransfer> eventsTransfer = null;
    private HttpSession session = null;

    @Override
    public void init() throws ServletException {
        this.context = getServletContext();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        session = request.getSession();
        String action = request.getParameter("action");
        Integer targetId = null;
        try {
            targetId = Integer.parseInt(request.getParameter("id"));
        }
        catch (NumberFormatException e){
            context.getRequestDispatcher("/error.jsp").forward(request, response);
        }
        StringBuffer stringBuffer = new StringBuffer();

}
}



Вот web.xml:

Код: xml
1.
2.
3.
4.
<servlet>
        <servlet-name>ApplyFilterServlet</servlet-name>
        <servlet-class>controller.ApplyFilterServlet</servlet-class>
    </servlet>



Код: xml
1.
2.
3.
4.
<servlet-mapping>
        <servlet-name>ApplyFilterServlet</servlet-name>
        <url-pattern>/applyfilter</url-pattern>
    </servlet-mapping>
...
Рейтинг: 0 / 0
25.08.2014, 12:22
    #38728002
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
mr_virtus,
логирование в сервлет (Alexander A. Sak)
JSP для POST зачем?
...
Рейтинг: 0 / 0
25.08.2014, 12:23
    #38728004
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
mr_virtus,
OFF
webx.xml маппинг можно убрать и поставить аннотацию
...
Рейтинг: 0 / 0
25.08.2014, 12:27
    #38728007
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
Petro123,

авторJSP для POST зачем?

что-то я похоже не понимаю.

Я делаю http get на сервлет.

Почему POST -то?
...
Рейтинг: 0 / 0
25.08.2014, 12:31
    #38728009
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
mr_virtus,
ты хочешь чтобы я тебе твой проект писал?
Есть анекдот - Вам шашечки или ехать?
В форуме дают подсказки и направление....)))) поиска ))
JSP или кнопка для отправки POS \ GET неважно.
Пусть будет.
...
Рейтинг: 0 / 0
25.08.2014, 13:44
    #38728067
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
mr_virtusВ итоге, отладчик показывает тип для request - MonitorRequestWraper. Почему не HttpServletRequest?Импорты посмотрите. Класс MonitorRequestWrapper, вроде, netbeans-овая обёртка для HttpServletRequestWrapper.
Соответственно, без проблем можно извлечь и нужный вам HttpServletRequest.
...
Рейтинг: 0 / 0
25.08.2014, 13:54
    #38728074
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
Basil A. Sidorov,
а как это на коде
String action = request.getParameter("action");
скажется?
Правильно я понял, что в нетбинсе, как ни ставь импорт - null не придёт?
...при отсутствии ошибок в IDE?
...
Рейтинг: 0 / 0
25.08.2014, 13:57
    #38728078
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
mr_virtus
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
function applyFilter(){
        idFilterJS = getRadioValue();
        var url = "applyfilter?action=applyfilterXML&id=" + idFilterJS;
        req = initRequest();
        req.open("GET", url, true);
        req.onreadystatechange = applyFilterCallBack;
        req.send(null);
    }



А зачем такой ппц вместо jQuery? XMLHttpRequest не всеми поддерживается одинаково хорошо. Используйте консоль разработчика в браузере чтобы проверить правильно ли сформировался запрос.
...
Рейтинг: 0 / 0
25.08.2014, 14:02
    #38728083
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
BlazkowiczА зачем такой ппц вместо jQuery?
просто это уже доп.библиотека.
Раз у него логирование и отладка затруднение, то это было off imho.
...
Рейтинг: 0 / 0
25.08.2014, 14:04
    #38728087
Alexander A. Sak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
mr_virtusAlexander A. Sak,

авторПо поводу null. Этот метод действительно такой? Может, интеллект нынешних компиляторов достиг того, что ненужные присвоения даже код не генерят? Я обычно логгированию больше доверяю.

Что значит "метод действительно такой"? Можно поподробней?


Такой -- это значит именно такой, какой приведен в примере. С ненужным присвоением, из которого можно честно не генерировать в байт-код. Могу ошибаться, конечно.
...
Рейтинг: 0 / 0
25.08.2014, 14:13
    #38728099
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
Basil A. Sidorov,
да это обертка. В самом реквесте тоже ничего нет.
...
Рейтинг: 0 / 0
25.08.2014, 14:14
    #38728100
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
Petro123просто это уже доп.библиотека.

Ассемблер наше всё. ОК.
...
Рейтинг: 0 / 0
25.08.2014, 14:15
    #38728102
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит MonitorRequestWraper и почему я не получаю параметров из request?
Blazkowicz,

а что там конкретно смотреть?

перенные заполняются.

url: "applyfilter?action=applyfilterXML&id=6"
req: XMLHttpRequest
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Что значит MonitorRequestWraper и почему я не получаю параметров из request? / 25 сообщений из 37, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]