|
-10 / 0 / 0
Регистрация: 14.07.2010
Сообщений: 82
|
|
Диплом по JSP JAVABEAN (или EJB)14.07.2010, 10:25. Показов 4337. Ответов 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" Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|