|
|
|
Вывод из сервлета два раза подряд
|
|||
|---|---|---|---|
|
#18+
Можно ли из сервлета делать два раза вывод? Например, если не удается загрузить person.picture , то сервлет будет выводить файл nofoto , но не выводит... и нет сообщения о ошибке из второго кетча. Такое будет работать? на странице Код: html 1. в сервлете Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2016, 21:47 |
|
||
|
Вывод из сервлета два раза подряд
|
|||
|---|---|---|---|
|
#18+
rema174, нельзя. src у картинок в виде статики. Картинки загружаются в потоке в момент загрузки html. Делают по другому. - у картинки делают свойство Невидимый в сервлете - на событие onLoad Page проверяют в JS какое нибудь условие и либо меняют атрибут src, либо оставляют и включают видимость. Так можно менять картинки хоть на MouseMove. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2016, 23:01 |
|
||
|
Вывод из сервлета два раза подряд
|
|||
|---|---|---|---|
|
#18+
Невидимый hidden не в сервлете, а в JSP\HTML при вёрстке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2016, 23:02 |
|
||
|
Вывод из сервлета два раза подряд
|
|||
|---|---|---|---|
|
#18+
Petro123, не охота с JS связываться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2016, 23:19 |
|
||
|
Вывод из сервлета два раза подряд
|
|||
|---|---|---|---|
|
#18+
rema174Petro123, не охота с JS связываться... это понятно. Но не реально. Страничка отправляется клиенту 1 раз и целиком как вагоны в составе поезда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2016, 23:23 |
|
||
|
Вывод из сервлета два раза подряд
|
|||
|---|---|---|---|
|
#18+
Жееесть, а в чем проблема то? Ну проверьте есть ли байты из первого источника а потом уже пишите. Все равно через память целиком файлы гоняете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 00:52 |
|
||
|
Вывод из сервлета два раза подряд
|
|||
|---|---|---|---|
|
#18+
no56892Жееесть, а в чем проблема то? Ну проверьте есть ли байты из первого источника а потом уже пишите. Все равно через память целиком файлы гоняете. тем более что в response пишется длина содержимого. Как только контент пошел к клиенту, поздно метаться и менять файл. Если подразумевается поток данных без длины в заголовке то подразумевается обработчик на клиенте. можно конечно извратиться и загрузитъ base64 из нескольких картинок (если не пошла первая, в тот же base64 заливать следующую с тегом разделителем), провалидировать загрузку в js и запихнуть нужный кусок как image в канвас. Когда то попадалось похожее решение но давненько это было... да и нестандартное оно. Проще дернуть новый URL для картинки. Чем проще тем лучше и меньше проблем с браузерами. в примере загрузка картинки в память в массив байт это не очень картуазно если только это не пример показать по быстрому. Небольшие улучшения- 1. Длину содержимого файла в байтах можно взять без чтения File.length() 2. Вместо чтения содержимого в массив байт можно взять file input stream и копировать из него в response output stream используя буффер или если лень что то вроде IOUtils.copy() 3. Exception может быть не только потому что файл не найден или не считывается - может отвалиться клиент и тд. Обработчик открытия потока из файла лучше окружить своим try/catch и принимать решение что отдавать (содержимое одного из файлов или http ошибку) в цикле проверяя файлы по очереди и как только очередной файл подошел(существует, fileinputstream создался), выход из цикла, после того как решение принято что вернуть клиенту (длина данных и поток из файла в наличии и тогда возвращаем содержимое либо их нет), можно переходить к отдаче контента файла или ошибки http в response к клиенту. В внешнем finalize или try/resources позакрывать все что нужно по окончанию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 02:43 |
|
||
|
Вывод из сервлета два раза подряд
|
|||
|---|---|---|---|
|
#18+
uid uniqueno56892Все равно через память целиком файлы гоняете. в примере загрузка картинки в память в массив байт это не очень картуазно если только это не пример показать по быстрому. а что плохого, в таком способе. могу использовать разные способы, но там размеры картинок маленькие, и думаю это никак не отразится на производительности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 10:26 |
|
||
|
Вывод из сервлета два раза подряд
|
|||
|---|---|---|---|
|
#18+
rema174, JSTL не работает? Типа: Код: java 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 10:48 |
|
||
|
Вывод из сервлета два раза подряд
|
|||
|---|---|---|---|
|
#18+
rema174, Код: html 1. Если avatarId не найден, возвращаем nophoto ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 12:53 |
|
||
|
Вывод из сервлета два раза подряд
|
|||
|---|---|---|---|
|
#18+
Petro123rema174, нельзя. src у картинок в виде статики. Картинки загружаются в потоке в момент загрузки html. Делают по другому. - у картинки делают свойство Невидимый в сервлете - на событие onLoad Page проверяют в JS какое нибудь условие и либо меняют атрибут src, либо оставляют и включают видимость. Так можно менять картинки хоть на MouseMove.ты зачем такую ересь пишешь? src у картинки в примере /getImage?p=124 сервлет отдаёт байты картинки, браузер её рендерит // если не удается загрузить person.picture, то сервлет будет выводить файл nofoto если в outputstream ушло 10 байт первой картинки, а дальше ты отдаёшь байты второй картинки -- что получит браузер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 12:56 |
|
||
|
Вывод из сервлета два раза подряд
|
|||
|---|---|---|---|
|
#18+
grasoff.netты зачем такую ересь пишешь? src у картинки в примере /getImage?p=124 сервлет отдаёт байты картинки, браузер её рендерит выше написали: uid unique Как только контент пошел к клиенту, поздно метаться и менять файл. не понял постановку автора. Если он во время отдачи знает что отдавать, тогда ты прав. Нет тут особых проблем. Если код отдали на клиента, то как я написал выше делается уже правкой DOM. IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 13:04 |
|
||
|
Вывод из сервлета два раза подряд
|
|||
|---|---|---|---|
|
#18+
Petro123не понял постановку автораесли ты не понял, зачем пишешь ересь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 13:08 |
|
||
|
Вывод из сервлета два раза подряд
|
|||
|---|---|---|---|
|
#18+
grasoff.net, ты всё понял? - пиши решение и не словоблудствуй тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 13:14 |
|
||
|
Вывод из сервлета два раза подряд
|
|||
|---|---|---|---|
|
#18+
Petro123grasoff.net, ты всё понял? - пиши решение и не словоблудствуй тоже.п....ц ты упоротый ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 18:50 |
|
||
|
Вывод из сервлета два раза подряд
|
|||
|---|---|---|---|
|
#18+
Petro123пиши решение и не словоблудствуй тожезачем ты говоришь людям что-то делать? страна советов никак из головы не выйдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 18:52 |
|
||
|
Вывод из сервлета два раза подряд
|
|||
|---|---|---|---|
|
#18+
rema174но не выводит...может из-за того, что MIME-Type не указан ? Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 22:37 |
|
||
|
Вывод из сервлета два раза подряд
|
|||
|---|---|---|---|
|
#18+
Usman, нет, оно валилось там где readAllBytes. я вынес его проверку выше инициализации оутпутстрима. ничего нового, но работает, а Content-Type устанавливалось выше. и в бафередстрим пожалуй оберну, так правильней и сейчас и на будущее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 23:25 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39274944&tid=2123887]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 403ms |

| 0 / 0 |
