Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> программный вызов сервлета из JSP 
V
    Опции темы
Klio
  Дата 5.6.2009, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 18.4.2008
Где: Харьков - СС_3

Репутация: 1
Всего: 1



Уважаемый народ, Программисты! 
подскажите как можно сделать так чтобы
При выполнении в JSP скриплета, вызвать программно Servlet и после выполнения в нём всех операторов осуществить автоматический возврат на вызвавшую её JSP, для продолжения выполнения скриплета  (по образу действия - как вызов обычной процедуры или функции)?
Заранее спасибо!

Это сообщение отредактировал(а) Klio - 5.6.2009, 17:39
PM MAIL ICQ   Вверх
AntonSaburov
Дата 5.6.2009, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



ищи слово AJAX
PM MAIL WWW ICQ   Вверх
Klio
  Дата 5.6.2009, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 18.4.2008
Где: Харьков - СС_3

Репутация: 1
Всего: 1



AJAX не изучал не знаю
У меня страница статичесская, JavaScript я не использую, мне необходимо вызвать Servlet до формирования визуального отображения!

если по другому нельзя, можно простой пример вызова servleta?
PM MAIL ICQ   Вверх
MisterCleric
Дата 5.6.2009, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

Репутация: 33
Всего: 38



Подожди, а почему обязательно вызывать Servlet? 
Чего низя вызвать какой-то твой бизнес-объект, который все равно использует этот сервлет?
вот пример из моего старого кода
Код

....
 <ww:set name="requestURI" value="%{\"/uri\" + #JSESSIONID +\"?tableId=table\"}"/>
    <%
       web.displaytag.decorator.DefaultSearchFormInjector tableDecorator = new web.displaytag.decorator.DefaultSearchFormInjector("login", "email";
        Map<String, String> paramAttributes = new HashMap<String, String>();
        paramAttributes.put("login", "size='5'");
        paramAttributes.put("email", "size='10'");
        paramAttributes.put("name", "size='15'");
        tableDecorator.setParamsAtributes(paramAttributes);
        request.setAttribute("tableDecorator", tableDecorator);

    %>
    <display:table name="tabledata"
                   defaultsort="5" export="false" id="table" excludedParams="ajax tableId pageSize"
                   requestURI="${requestURI}" decorator="tableDecorator">
....


м-дя-а-а. на JSP тоже нет подсветки...


--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
Klio
Дата 5.6.2009, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 18.4.2008
Где: Харьков - СС_3

Репутация: 1
Всего: 1



MisterCleric вопрос

что за объект описывает переменная jstl тега "ww"?
и как организовывается сам вызов servleta
PM MAIL ICQ   Вверх
AntonSaburov
Дата 5.6.2009, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



Неколько непонятная функциональность - я не очень понимаю зачем именно так надо организовывать страницу.
Может объяснишь идею сего замысла ?
PM MAIL WWW ICQ   Вверх
Klio
Дата 5.6.2009, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 18.4.2008
Где: Харьков - СС_3

Репутация: 1
Всего: 1



у меня есть файл на сервере, в нем хранятся запросы на выполнение,
чтение организовывается построчно через сервлет
до начала его выполнения мне необходимо считать некоторые переменные, сделать некоторые преобразования над ними, сохранить их, после чего необходимовызвать сервлет использующий некоторые из этих данных, после его выполнения продолжить выполнение скриплета!
PM MAIL ICQ   Вверх
AntonSaburov
Дата 5.6.2009, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



А какие переменные тебе надо считать ? И откуда ?

У меня такое ощущение, что ты не понимаешь, что JSP выпонятеся на СЕРВЕРЕ. Она сначала транслируется в сервлет и потом этот сервлет выполняется как обычный сервлет на СЕРВЕРЕ. И только уже потом результат поедет к пользователю в виде HTML. Причем целиком выполненный уже.

По идее тогда надо вынести логику получения нужных переменных в отдельный класс, которым будут пользоваться все сервлеты. И пусть пользуются на здоровье smile
PM MAIL WWW ICQ   Вверх
Klio
Дата 5.6.2009, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 18.4.2008
Где: Харьков - СС_3

Репутация: 1
Всего: 1



переменные из url через request.getParameter

я понимаю что намного легче сделать все это сразу в Servlete но мне нужно чтобы все было в JSP? тем более страница jsp перед всем этим выполняет очень большое количество кода, и переделывать всё займет большой период,

с другой стороны это было бы не нужно если бы знать как можно считывать построчно в jsp без участия сервлета.
PM MAIL ICQ   Вверх
AntonSaburov
Дата 5.6.2009, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



Ну переделай сервлет, который возвращает в JSP то, что тебе надо.
Сделай ему конструктор без параметров и методы, которые позволят получить то, что надо. Без вызова doGet и doPost

Хотя это выглядит как история:

- Слушай, а как по-английский будет "у" ?
- А тебе зачем ?
- Хочу сказать "У студента не было денег"

Потому что решение, которое ты пытаешься реализоваь по-моему какое-то .... удивительное.
PM MAIL WWW ICQ   Вверх
Klio
Дата 5.6.2009, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 18.4.2008
Где: Харьков - СС_3

Репутация: 1
Всего: 1




Код

protected void doPOST(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/html");
        String filename = "/instal/instal.sql";
        ServletContext context = getServletContext();

        InputStream inp = context.getResourceAsStream(filename);
        if (inp != null) {
            InputStreamReader isr = new InputStreamReader(inp);
            BufferedReader reader = new BufferedReader(isr);
            PrintWriter pw = response.getWriter();
            String text = "";
            while ((text = reader.readLine()) != null) {
                    ...........................................
            }
        }
    }


Как для JSP изминить строку "ServletContext context = getServletContext();"
PM MAIL ICQ   Вверх
AntonSaburov
Дата 5.6.2009, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



так надо вытащить считывание файла в отдельный метод, который вернет набор строк. И вставлять их печать где угодно. В том же скриптлете. Кстати в скриптлете их (строки) можно оформить HTML тэгами, чтобы симпатичнее выглядело.
PM MAIL WWW ICQ   Вверх
Klio
Дата 5.6.2009, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 18.4.2008
Где: Харьков - СС_3

Репутация: 1
Всего: 1



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

Это сообщение отредактировал(а) Klio - 5.6.2009, 18:23
PM MAIL ICQ   Вверх
AntonSaburov
Дата 5.6.2009, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



Цитата(Klio @  5.6.2009,  18:21 Найти цитируемый пост)
а можно как-нибуть обойтись без дополнительных методов? 

Думаю, что это самый простой вариант. В том же NetBeans сделать рефакторинг с выделением метода. И дальше пользуй этот метод как угодно.
PM MAIL WWW ICQ   Вверх
MisterCleric
Дата 5.6.2009, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

Репутация: 33
Всего: 38



Цитата

Как для JSP изминить строку "ServletContext context = getServletContext();" 


Ответ

Код

<%ServletContext context = getServletConfig().getServletContext()%>


Добавлено через 3 минуты и 14 секунд
А вообще есть такой еще магический тег 
Код

 <jsp:useBean>


В общем чувствую, что какая-то логика неверная в этой задаче. Что-то надо менять в архитектуре


--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0582 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.