используя HttpServlet для генерации исходного изображения html-img -> как сделать запрос через POST? - PullRequest
0 голосов
/ 26 июля 2011

Я использую HttpServlet для генерации html-изображения, зависящего от нескольких идентификаторов, например:

<img src="./someServlet?ids=123,124,125,126[...]" alt=""/>

someServlet расширяется от javax.servlet.http.HttpServlet, перезаписывая методы doGet() и doPost().Он устанавливает тип содержимого ответа img/png и использует выходной поток ответа для фиксации сгенерированного изображения в виде.

Отображение сервлета выполняется в web.xml:

<servlet>        
    <servlet-name>SomeServlet</servlet-name>
    <servlet-class>my.package.ImageServlet</servlet-class>
</servlet>
<servlet-mapping>        
    <servlet-name>SomeServlet</servlet-name>
    <url-pattern>/someServlet</url-pattern>
</servlet-mapping>

Мой вопрос: Как отправить запрос выше через POST вместо GET?Я попытался окружить его тегом <form>, установив метод POST, но, как и ожидалось, он не работал.

РЕДАКТИРОВАТЬ: мне это нужно, потому что мой запрос (с 5-10 UUIDS) превышает ограничениезапроса GET

1 Ответ

3 голосов
/ 26 июля 2011

Вы не можете изменить элемент <img> для отправки запроса POST вместо GET.Это не имеет никакого смысла.

В соответствии с комментарием к вопросу ограничение длины строки запроса, по-видимому, является основной причиной:

Я хочу использовать POST, потому чтодлина параметра get ограничена.Я фиксирую 5-10 UUIds в качестве параметра, который превышает длину запроса GET.

Просто передайте его как часть URL вместо информации пути.Итак, вместо

<img src="someServlet?id1=123&id2=234&id3=345&id4=456&id5=567" alt=""/>

используйте

<img src="someServlet/123/234/345/456/567" alt=""/>

Вам нужно всего лишь изменить шаблон URL вашего сервлета на

<url-pattern>/someServlet/*</url-pattern>

и изменить способ получения идентификаторов.следующим образом

String[] ids = request.getPathInfo().substring(1).split("/");
// ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...