|
-10 / 0 / 0
Регистрация: 14.07.2010
Сообщений: 82
|
|
Диплом по JSP JAVABEAN (или EJB)14.07.2010, 10:25. Показов 4394. Ответов 22
Метки нет (Все метки)
Мужики (и не только), такая ситуация:
j2ee прога для тестирования учащихся. клиенты через jsp считывают тест из xml-файла (БД нету и не надо) по id-номеру (имя файла),который находится на сервере и по SAX-у разбиают этот файл на составляющие. обработка в обычном классе (javabean) и наверное соответственно поэтому нет возможности работу нескольких клиентов , а надо!!!! т.к. переменные переопределяются и предыдущим пользователем (они работают как один пользователь: первый зашел на первый вопрос второй пользователь сразу после регистрации на второй вопрос ) Думаю надо использовать session ejb (т.к. БД нет), думаю stateful!!! но не получается переменные все равно не сохраняются за пользователем. Также думаю можно в jsp по session.setAttribute закрепить определенное значение за определенным клиентом. Я уже не знаю что делеть... помогите ... люди...
0
|
|
| 14.07.2010, 10:25 | |
|
Ответы с готовыми решениями:
22
Можно ли на JSP создать массив JavaBean'ов? WAR = EJB + SERVLET,JSP EJB+JSP+MySQL+NetBeans IDE |
|
1 / 1 / 2
Регистрация: 07.01.2010
Сообщений: 128
|
|
| 14.07.2010, 11:20 | |
|
Если пойдет залипуха, можно сделать класс, в котором есть static переменная - Map, в котором хранятся JavaBeans, в каждом из которых хранится разобранный XML-файл. Там же минимальная рулежка: проверять, есть ли уже готовый бин для имени файла, если нет, создавать, etc. Пользовать можно как в web-приложении, так и через EJB фасад.
Если залипуха не пойдет, нужно сделать Entity EJB с BMP, и написать persistance layer, который будет работать с вашими XML файлами.
0
|
|
|
-10 / 0 / 0
Регистрация: 14.07.2010
Сообщений: 82
|
|
| 14.07.2010, 12:04 [ТС] | |
|
Дмитрий, а можно по подробней про тот класс со
satic переменной (если можно распиши немножко) это т.е. надо создать массив бинов например так: MyBean[] mb = new MyBean[10]; // на 10 клиентов ... mb[i].getXXX; //а как же чтоб i не переопределялась или это даже близко не прото??? распиши, а!!!
0
|
|
|
1 / 1 / 2
Регистрация: 07.01.2010
Сообщений: 128
|
||||||
| 14.07.2010, 13:03 | ||||||
|
Массив бинов создавать как раз не нужно. Если несколько клиентов будут работать с одним и тем же экземпляром бина, то будут видеть результаты работы друг друга. Вот классы:
0
|
||||||
|
-10 / 0 / 0
Регистрация: 14.07.2010
Сообщений: 82
|
|
| 14.07.2010, 13:33 [ТС] | |
|
Дмитрий!!! Я потрясен (в коды еще не въезжал, но...)
неужели ты ради меня все это набивал СПАСИБО ТЕБЕ БОЛЬШОЕ за труд!!! Может конечно там все верно , но вот более примерное сотояние на данный момент: клиент --> web-сервер --> XML-файл start.html - там клиент вводит имя ,id теста... нажимает кнопку test.jsp - данная устанавливает в бине те значения которые ввел клиент ... mybean.setIDTheme(request.getParameter(' id')); ... и перенаправляет зарос на main.jsp - которая выводит из бина (тему, вопросы...) при нажатии там на кнопку сессия я так понимаю начиная с test.jsp и main.jsp обновляется со значением счетчика вопросов Count++; когда конец вопросов (результат также из бина т.е. из XMLа) выводится резальтат. Если ты имел ввиду ту же самую задачу то ОГРОМНОЕ ТЕБЕ СПАСИБО. P.S. я ВПЕРВЫЕ сегодня в форуме поэтому еще ОГРОМНОЕ ТЕБЕ СПАСИБО.
0
|
|
|
1 / 1 / 2
Регистрация: 07.01.2010
Сообщений: 128
|
|
| 14.07.2010, 14:37 | |
|
1.Я не имел в виду никакой конкретной прикладной задачи, а только способ доступа к общим ресурсам из разных классов.
2.Задачу в том виде, как она выглядит после уточнения, можно решить разными способами, в том числе и тем, который был предложен. Но более адекватно в твоем случае было бы просто складывать бины в контекст приложения. С точки зрения сервлета это getServletConfig().getServletContext().s et/getAttribute(...), а с точки зрения JSP - <jsp:useBean id='...' class='...' scope='application'/>. Хотя задача до конца все равно не ясна и, возможно, потребуется еще что-то. Конкретно, неясно следующее: если один пользователь проходит тест X, то сколько бы пользователей еще ни захотело пройти тот же тест, все они будут работать на один общий результат. По-моему, постановка задачи странная.
0
|
|
|
-10 / 0 / 0
Регистрация: 14.07.2010
Сообщений: 82
|
|
| 14.07.2010, 15:41 [ТС] | |
|
Я благодарен тебе что Ты находишь время помочь мне!
И был бы еще более благодарен чтоб Ты остался в online еще. Попробую объяснить задачу: 1.На машине админа стоит Web-server который управляет JSP. 2.Клиенты конектются к нему, например: ttp:\server:8080start.html 3.Там форма для регистрации (Имя, ID - теста) и кнока при нажатии на которую происходит ...action='test.jsp'>... 4.Страница Test.jsp не визуальная она отлавливает запросы со start.html и устанавливает их в бине, например: <% mybean.setUserName(request.getParameter( 'username')); %> и делает forward на страницу main.jsp 5.Страница main.jsp (сновная) содержит форму с на которой :Темf теста, чекбоксы и наротив каждого вариант ответа, и кнопка (тоже submit) ,при нажатии на нее происходит следующее: счетчик вопросов устанавливается на 1 больше, проверяется значение верности ответа пользователя (верные суммируются для оценки). Если значение кол-ва вопосов mybean.setAllQuestions()==Cout где Count - счетчик числа вопросов (их номер), то ...<jsp:forward page='/result.jsp' />... надо чтобы пользователи работали совершенно независимо от начала и до конца, если один закончил посмотрел свои результаты (а все результаты пишутся в один файл append'ом, но это уже другая история ) и пошел покурить, в то время как другие еще отвечают или пиво пьют - это не важно интернет ведь. НУЖНА СТРОГО НЕЗАВИСИМАЯ РАБОТА ПОЛЬЗОВАТЕЛЕЙ! СПАСИБО, ЧТО ПОМОГАЕШЬ (а то я один (никто в java не шарит и даже Пахан который тут рядом со мной сидит!))
0
|
|
|
1 / 1 / 2
Регистрация: 07.01.2010
Сообщений: 128
|
||||||
| 14.07.2010, 16:48 | ||||||
0
|
||||||
|
1 / 1 / 2
Регистрация: 07.01.2010
Сообщений: 128
|
|
| 14.07.2010, 16:50 | |
|
Прошу прощения, пункт 3.3.2 читать
контроллер формирует ключ: 'A|X', и ищет в кэше local interface бина, ...
0
|
|
|
-10 / 0 / 0
Регистрация: 14.07.2010
Сообщений: 82
|
|
| 14.07.2010, 17:15 [ТС] | |
|
Вопрос обычный.
Тебе сколько лет-то? Небось в Sun'e работаешь? Ты случайно с Д.Гослингом или Б.Джоем не знаком? Я не смеюсь, просто очень неожидано что чел из нета мне решил конкретно помочь. В 17.00 конец рабочего дня , попрусь домой, так что забей до завтра, попробую твои советы!!!
0
|
|
|
1 / 1 / 2
Регистрация: 07.01.2010
Сообщений: 128
|
|
| 14.07.2010, 17:59 | |
|
35
не работал не знаком
0
|
|
|
-10 / 0 / 0
Регистрация: 14.07.2010
Сообщений: 82
|
|
| 15.07.2010, 10:47 [ТС] | |
|
Вчера к сожалению не смог воплотить твои идеи
(насчет Stateful EJB и кеша (так и не понял как его реализовать)) Но это еще впереди. А можно -ли так (если задача тобой еще не забыта): 1. Все остается такое же кривое как сейчас, но 2. т.к. сессия является (в какой-то степени) идентификатором клиента при каждом переходе на новый вопрос в начале кода что-то типа: .......... out.print(session.getAttribute('theme')) ; ............ // а в конце jsp-кода session.setAttribute('theme',bean.getThe me()); // но тут проблемы с bean.getTheme() и так же про номер count вопроса тоже в сессию забивать... где-то рядом... но физически не получается .... немного.... или много.... если эта идея полная лажа распиши ПОЖАЛУЙСТА в кодах, про там что у тебя так супер начинается -- 'Задача ясна...' ты там еще много разных пунктов описывал... все это круто... йоу...
0
|
|
|
1 / 1 / 2
Регистрация: 07.01.2010
Сообщений: 128
|
|
| 15.07.2010, 11:26 | |
|
Так сделать можно, но тогда состояние сеанса тестирования будет видно, по определению, только в той же HTTP сессии. Когда клиент зарегистрируется в следующий раз, сессия будет новая, а увидеть из сервлетов/JSP не свои сессии невозможно. Если нужно реализовать сеанс, который живет дольше HTTP-сессии (или просто виден из нескольких сессий), придется делать кэш в том или ином виде. То, что было предложено - почти самый простой вариант. Еще проще - заменить Stateful EJB на обычные Java классы, и хранить их непосредственно в кэше. Но это будет уже совсем не-J2EE подход, потому что при большом количестве пользователей такая программа будет съедать много памяти, в то время как EJB могут быть пассивированы сервером, если он посчитает нужным. Расписать все в кодах не получится: великоват объем, как кода так и работ. Внимательно прочти предложенное решение и пример реализации кэша, там все достаточно подробно описано.
0
|
|
|
-10 / 0 / 0
Регистрация: 14.07.2010
Сообщений: 82
|
|
| 15.07.2010, 11:47 [ТС] | |
|
Правильн-ли я понял:
В stefule переписываю весь свой бин (разбор xml'a и растаскивание его по методам (всякие так set/getXXX и ...void Разбор(){...} ) после чего из jsp обращаемя к этому stateful'у и выдираем от туда методы а фигней (в jsp) create(параметры) зада ем начальнае параметры данной хрени... так не получается ... не могу... блин... ему (stateful'у) по барабану и переменные он у меня не сохраняет за конкретным пользователем...
0
|
|
|
1 / 1 / 2
Регистрация: 07.01.2010
Сообщений: 128
|
|
| 15.07.2010, 14:35 | |
|
1.Вообще-то, я видел это иначе: stateful bean не используется непосредственно из JSP,
вместо этого диспетчер - сервлет создает обычный JavaBean, заполняет его данными из Stateful EJB, кладет в HTTP session, а JSP использует уже его. 2.Stateful bean сохраняет все, что нужно. Правда пользователь ему действительно 'по барабану'. Если у тебя это не работает, значит, ты что-то делаешь неправильно. Боюсь, придется прочесть спецификации сервлетов и EJB перед тем как продолжать. Невозможно оба эти документа пересказать здесь.
0
|
|
|
-10 / 0 / 0
Регистрация: 14.07.2010
Сообщений: 82
|
|
| 15.07.2010, 15:27 [ТС] | |
|
СПАСИБО ДМИТРИЙ ТЕБЕ ЗА ВСЕ!!!!
ТЫ НАСТОЯЩИЙ МУЖИК!!!! поробу все... что говорил... но тему пока оставля открытой (на случай если еще прийдут новые мыси) ....А ТАК ВСЕ КРУТО... БУДЕМ РАБОТАТЬ!!!! СПАСИБО!!!
0
|
|
|
0 / 0 / 0
Регистрация: 11.02.2010
Сообщений: 111
|
|
| 16.07.2010, 00:05 | |
|
А чем тебе СУБД не угодили?
0
|
|
|
mishgun
|
|
| 16.07.2010, 00:21 | |
|
ya vot ne poymu a kto vam meshaet sdelat javaBean sessionnym?Zachem lepit tsepochku jsp ->javabean->EJB?
|
|
|
-10 / 0 / 0
Регистрация: 14.07.2010
Сообщений: 82
|
|
| 19.07.2010, 10:19 [ТС] | |
|
за выходные немного подумал!!! плюнул на все (или почти все!!!)
и сделал через session.set/getXXX . теперь тема теста (и соответственно вопросы закрепляются за соответствующей сессией (т.е. клиентом)) теперь остается закрепить счетчик вопросов (думаю это будет также)!!! я понимаю что это полная ЛАЖА, но я уже конкретно задолбался с этим. Но тем не менее на JAVA ишу уже давно (просто видимо я такой глупый), и вот что я Вам скажу:'JAVA ЭТО КРУТО!!!'
0
|
|
|
mishgun
|
|
| 19.07.2010, 17:50 | |
|
Goda poltora nazad ya napisal takoy test dlya svoey zheny.Kupila glupaya CD s testom po igloterapii (razrabotchiki kitaytsy sootvetstvenno) tak vot na kitayskom test pahal a na angliyskom net(Front end - VB).Ya vidral ottuda bazu(Access of course) i napisal test pod resinoy.JSP+JavaBeans .Vsyo rabotalo... I ya ne soglasen chto eto koryavo.... A na Java pishut kak raz ne glupie ludi.Znaval ya ludey kotorie snachala shli uchit Java a potom brosali i sadilis za VB tak kak on legche.Ne v obidu ludyam pishushim na VB budet skazano....
|
|
| 19.07.2010, 17:50 | |
|
Помогаю со студенческими работами здесь
20
Jsp-Servlet-XXX-EJB. Кто что использует в ХХХ? Java или JavaBean в чём отличие ? JSP или SWING+JSP или иное Форма-почтой через сервлет или javabean Исходники книги "Буди Курняван - Создание web-приложений на языке java с помощью сервлетов jsp и ejb" Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|