powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как на сервер отправить данные с формы, если в имени параметров есть слеш?
24 сообщений из 24, страница 1 из 1
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32622475
MGR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеем :
сервер обрабатывает параметры в имени которых есть слеш: типа "Account/SubAccount", "Vendor/VendorAddress/ZIPCode" и т.п.

В данный момент форма имеет метод POST , на ней лежат контролы, имена которых со слешом.
Затем форма сабмитится с адресом скрипта, который всё и обрабатывает.

Есть 2 больших недостаток - сабмит формы приводит к тому, что страница переходит по ссылке из ACTION и кроме того, я не умею респонз нормально отрабатывать.

Хочется перейти на метод GET чтобы потом использовать объект типа MSXML2.XMLHTTP ...
Но записать строку вида "myserver/myfile.jsp?Account/SubAccount=SUB000" я не могу...

Как мне быть?
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32622705
Фотография А.Гpacoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MGR Имеем :
сервер обрабатывает параметры в имени которых есть слеш: типа "Account/SubAccount", "Vendor/VendorAddress/ZIPCode" и т.п.

В данный момент форма имеет метод POST , на ней лежат контролы, имена которых со слешом.
Затем форма сабмитится с адресом скрипта, который всё и обрабатывает.

Есть 2 больших недостаток - сабмит формы приводит к тому, что страница переходит по ссылке из ACTION и кроме того, я не умею респонз нормально отрабатывать.

Хочется перейти на метод GET чтобы потом использовать объект типа MSXML2.XMLHTTP ...
Но записать строку вида "myserver/myfile.jsp?Account/SubAccount=SUB000" я не могу...

Как мне быть?

если у формы в атрибуте method указать метод post, то
какие проблемы? при сабмите все слэши заменятся на
допустимые в урле символы.
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32623159
MGR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЯЕсть 2 больших недостаток - сабмит формы приводит к тому, что страница переходит по ссылке из ACTION и кроме того, я не умею респонз нормально отрабатывать.
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32623198
Фотография А.Гpacoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MGR ЯЕсть 2 больших недостаток - сабмит формы приводит к тому, что страница переходит по ссылке из ACTION и кроме того, я не умею респонз нормально отрабатывать.


и?

во-первых, в запросе GET если указать в одном из параметров так:

http://www.eee.ru/myservlet?somepath=content/music/hardcore/1.mid

то на стороне сервлета:

Код: plaintext
1.
2.
... service(... request, ... ...) {
  String somepath = request.getParameter("somepath");
}

как думаешь - что будет в переменной somepath?
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32623207
Фотография А.Гpacoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MGR ЯЕсть 2 больших недостаток - сабмит формы приводит к тому, что страница переходит по ссылке из ACTION и кроме того, я не умею респонз нормально отрабатывать.


1. ну и что? перейдет по этой ссылке и что? пусть перейдет например на
сервлет, который, обработав запрос, сделает редирект туда куда надо.
2. это как? а если методом GET - умеешь? и в чем разница обработки респонза
при запросах GET и POST?
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32623423
MGR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых сразу скажу, я в этом сильно новичок...
Во-вторых, я в принципе не могу править JavaBeans, хотя JSP править могу, но не рекомендуется...
Далее - с помощью метода GET я могу работать с помощью технологии описанной в примере . Как это сделать с помощью POST - я не знаю (см. "во-первых")

Если будут какие предложения - с радостью выслушаю
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32623460
Фотография А.Гpacoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда это для тебя:

А.Гpacoff
в запросе GET если указать в одном из параметров так:

http://www.eee.ru/myservlet?somepath=content/music/hardcore/1.mid

то на стороне сервлета:

Код: plaintext
1.
2.
... service(... request, ... ...) {
  String somepath = request.getParameter("somepath");
}



в переменной somepath будет не что иное как "content/music/hardcore/1.mid"
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32623526
Фотография А.Гpacoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще тут посмотри http://www.sources.ru/java/java_rbc.shtml
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32623577
MGR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал... Оказалось дело было не в Слешах - метод GET просто не даёт никакого результата :(
Ни вышеописанным способом - ни стандартно (через сабмит формы)
Понимаю, что по телефону аппендицит не вырезают, но может подскажите, где копать (в какую сторону)?
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32623782
Фотография А.Гpacoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хочешь сказать, что это не работает?

html-документ:

Код: plaintext
1.
2.
3.
4.
5.
<html>
...
<body>
 <a href="http://www.web.ru/some.jsp?somepath=winnt/system32">ссылка</a>
</body>
</html>

some.jsp:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<html>
...
<body>
<%
  String somePath = request.getParameter("somepath");
%> 
 <p>
  <%=somePath%>
 </p>
</body>
</html>

при клике на ссылку "ссылка" в html-документе, идет
GET-запрос на some.jsp, который в процессе своем генерит
еще один html-документ и выводит в нужном месте (<%=somePath%>)
значение параметра запроса somepath.
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32623784
Фотография А.Гpacoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а. фсё понял.

речь идет об ИМЕНАХ параметров.

фсё. ушел в децкий сад. учицца четать.
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32623858
MGR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точно! :)
Именно об именах.

Ты это - возвращайся! :)
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32623936
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странные какие-то вопросы.

На то ты кнопку сабмит и жмёшь, что бы ACTION получил твою форму и вернул ответ :) Ничего удивительного, что он открывается.

Если отсылать форму методом get, то получишь сместо '/' послед-ть %5С в имени переменной.

Если методом post теже яйца, вид сбоку.

На стороне сервера HttpServletRequest честно перевернёт %5C в "/"...

Где проблемы-то? :) Похоже грабли не в имени переменной, а в чём-то другом.
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32623948
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не в %5С, а в %2F. Слеши перепутал ^_^
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32623963
MGR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знал бы в чём проблема.
POST - работает
GET - нет.

В жавабинах разобраться не могу, с трудом облегчил JSP от лишнего "хлама"
А и коды вместо слеша подставлял - не помогает.
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32623978
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажи тогда код, который request разбирает. Может там спицефичный способ какой-то :) И пост и гет - оба работают исправно...

У метода get так же есть ограничение на длинну "хвоста" прицепляемого к url, может в этом проблема?
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32623981
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или jsp-шка, грубо говоря, только doPost() обрабатывает.

короче говоря, живой код решает :)
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32624047
MGR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит вот такой мой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
		url="http://myserver/ssc/monster.jsp?/SSC/User/Name=SIV&/SSC/SunSystemsContext/BusinessUnit=RUS&/SSC/Payload/ConversionCodes/CurrencyCode=222&/SSC/Payload/ConversionCodes/Description=ПРИМЕР&/SSC/Payload/ConversionCodes/LookupCode=П&state=build&component=CurrencyCodes&method=CreateOrAmend"
		
		
		Set objHTTP = CreateObject("MSXML2.XMLHTTP")
		Call objHTTP.Open("GET", url, False)

		objHTTP.Send 
		MsgBox objHTTP.StatusText
						
		set objDoc = objHTTP.responseXML
		MsgBox objdoc.xml

		url = "http://myserver/ssc/monster.jsp?state=execute"
		Call objHTTP.Open("GET", url, False)
		objHTTP.Send
		set objDoc = objHTTP.responseXML
		MsgBox objdoc.xml

Может слишком длинный действительно... Это кстати пример не самый длинный - есть и в 2-3-4 раза длиннее.

Второй вариант подразумевает вызов сабмита:
Код: plaintext
1.
2.
3.
	document.forms[ 0 ].action = 'https://myserver/ssc/monster.jsp?state=build&component=CurrencyCodes&method=CreateOrAmend'
		document.forms[ 0 ].submit();
		document.forms[ 0 ].action = 'https://myserver/ssc/monster.jsp?state='+state
		document.forms[ 0 ].submit();

Код JSP-шки такой вот (начало - все остальное не важно):
Код: plaintext
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.
<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<jsp:useBean id="method" class="com.systemsunion.SSTS.beans.MethodBean" scope="session"/>
<jsp:useBean id="comp" class="com.systemsunion.SSTS.beans.ComponentBean" scope="session"/>

<html:html locale="true">
<frameset rows="100 %,*" frameborder="0" border="0" framespacing="0">
<logic:present parameter="state">
	<logic:equal parameter="state" value="build">
		<% String strComponent = request.getParameter("component"); %>
		<% String strMethod = request.getParameter("method"); %>

		<jsp:setProperty name="comp" property="name" value="<%=strComponent%>"/>
		<jsp:setProperty name="method" property="component" value="<%=strComponent%>"/>
		<jsp:setProperty name="method" property="method" value="<%=strMethod%>"/>
	</logic:equal>

	<logic:equal parameter="state" value="execute">
		<%method.loadInput(request);%>
    		<%if (method.getPayloaderror().equals("true")) {
        		RequestDispatcher rd = request.getRequestDispatcher("monster.jsp?state=error");
        		rd.forward(request, response);
        		return;
    		}%>
    		<%method.execute();%>
    		<frame name="main" marginwidth="0" marginheight="0" noresize frameborder="NO" src="payload_executor_raw_view.jsp">
	</logic:equal>
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32624129
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С java всё ок.

Напрягает длинна строки url = 283 символа, ради эксперимента, я бы по короче что-нибудь вставил, но это только из-за моего ламерста в вопросе sybase %)
Почему-то во втором варинте стоит https, а в первом http... или это опечатка?

Жалко я у себя не могу такое запустить, посмотреть :)
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32624416
MGR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NotGonnaGetUs
Напрягает длинна строки url = 283 символа, ради эксперимента, я бы по короче что-нибудь вставил

Я вот прикинул - это минимум, что у меня есть. Другие варианты ещё длиннее.
Значит видимо GET мне не светит?
А как всё-таки сделать POST без того чтобы отобразилась страница на сервере?

но это только из-за моего ламерста в вопросе sybase %)

А какое отношение это имеет к сайбейзу? Ссылку, что я приводил, я привёл для примера технологии, которой хотел воспользоваться - через объект XMLHTTP
Как бы его (или не его) прикрутить к POST


Почему-то во втором варинте стоит https, а в первом http... или это опечатка?

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

Жалко я у себя не могу такое запустить, посмотреть :)

Да ну, чо там... Всё просто - попытка работы с апачем и MSSQL... Да и то, драконю существующее приложение для своих нужд.
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32624502
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
думаю, ради теста, можно всё-таки укоротить строчку(убрать оттуда / или заменить его на %xx), что бы убедиться что грабли не в её длинне.
(GET позволяет передавать до нескольких килобайт, если я не ошибаюсь.)

автор>> Значит видимо GET мне не светит?
>> А как всё-таки сделать POST без того чтобы отобразилась страница на
>> сервере?

Расскажи, как ты ухитряешься GET послать со странички открытой в браузере без того, что бы ответ с сервера не приходил :) Я не понимаю такого.
И не понимаю как такая потребность может возникнуть.
Вернее могу предположить, но не хочу в это верить :)

автор>> Нет, просто существует по 2 варианта - один секьюрный, другой обычный.
>> По невнимательности я скопировал первый пример из обычного варианта, а
>> второй - из секьюрного.

Надеюсь GET и POST тестились в одинаковых условиях, а не так, что один с https, а другой с http. Sorry, что сомневаюсь в этом :)

----

Проблема явно не java, поэтому я тут бесполезен :(
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32624630
MGR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NotGonnaGetUsдумаю, ради теста, можно всё-таки укоротить строчку(убрать оттуда / или заменить его на %xx), что бы убедиться что грабли не в её длинне.
(GET позволяет передавать до нескольких килобайт, если я не ошибаюсь.)

Убрать не оплучится, потому как связка работать не будет. Если убрать один из параметров - то сервер ваще не поймёт что от него хотят


Расскажи, как ты ухитряешься GET послать со странички открытой в браузере без того, что бы ответ с сервера не приходил :) Я не понимаю такого.

Толи я сам ничего не понимаю, толи ещё что...
Я уже приводил пример кода:
url="http://www.cbr.ru/scripts/XML_daily.asp?C_month=07&C_year=2004&date_req=14%2F07%2F2004&d1=15"
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
Call objHTTP.Open("GET", url, False)
objHTTP.Send

Данный код позволяет забирать страничку с сервера, сервер её создаёт по параметрам в урле.

И не понимаю как такая потребность может возникнуть.
Вернее могу предположить, но не хочу в это верить :)

Я не совсем понял... В принципе я могу объяснить, только боюсь это достаточно специализированная вещь и врядли интересна.


Надеюсь GET и POST тестились в одинаковых условиях, а не так, что один с https, а другой с http. Sorry, что сомневаюсь в этом :)

Ну само собой... Не надо извиняться :)
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32626075
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лол.
Если у респонса стоит content-type = text/html, то читать его через ("Msxml2.XMLHTTP.4.0").responseXml - не получится :)
Нужно брать responseText.
При обработке responseXXXX нужно ещё учитывать кодировку в которой пришёл респонс (charset=???), иначе, мне кажется, опять ерунда будет...

Нужно сначала разобраться, что же присылает сервер в ответ на запрос и оттуда плясать (заголовки респонса можно посмотреть при помощи метода getAllResponseHeaders() у объекта "Msxml2.XMLHTTP.4.0").


з.ы. я что-то совсем запутался, что где не открывается в зависимости от использования метода GET или POST :))
...
Рейтинг: 0 / 0
Как на сервер отправить данные с формы, если в имени параметров есть слеш?
    #32626415
MGR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, спасибо тебе, добрый человек...
Щас подвалило других дел, поэтому эксперименты свернул :)
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как на сервер отправить данные с формы, если в имени параметров есть слеш?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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