Как настроить web.xml для множественного входа в веб-приложение Struts2? - PullRequest
3 голосов
/ 26 сентября 2011

Я хотел бы разработать небольшое тестовое приложение для нескольких пользователей, используя Struts2 и JSP. В основном:

  1. Приложение должно иметь страницу приветствия (т. Е. index.jsp), доступ к которой может получить любой пользователь.

  2. Эта страница приветствия будет иметь два поля входа: одно для пользователей и одно для администраторов.

  3. В веб-приложении должно быть два вспомогательных приложения: одно для пользователей, другое для администратора. Другими словами, это не единственное приложение, где вошедшие в систему пользователи будут иметь разные привилегии. Каждое субприложение будет иметь свой собственный набор страниц.

Struts2 использует шаблон MVC, и мне интересно, как мне следует использовать шаблон фильтра для организации этого. Все запросы под /userapp/* могут быть отправлены в приложение пользователя, а все запросы под /adminapp/* - приложением администратора.

Мои вопросы:

  1. Это правильная стратегия (т.е. лучшая практика)? Если да, то как мне реализовать это в моем web.xml?

  2. Должен ли я реализовать два фильтра и два сопоставления (если да, почему?) Или мне следует реализовать один фильтр и два сопоставления?

UPDATE

После долгих чтений я понимаю, что мульти-вход в Struts2 - это слишком сложное и слишком сложное решение для того, что мне нужно. Я решил реализовать свой собственный Servlet 3.0 и использовать JQuery + Ajax.

1 Ответ

1 голос
/ 26 сентября 2011

Рассмотрим случай, когда есть 2 разных пользователя «Администратор» (самые высокие привилегии) ​​и «Клиент (меньше привилегий по сравнению с администратором)». В Struts вы можете реализовать так:

1.Сделайте бизнес-логику как User класс, который в основном выполняет следующие задачи

  a.)Gets the username,password as input.
  b.)Checks whether this 'username' exists in database.
  c.)If exits, gets the type of user(either Admin or Customer) and checking 
     its corresponding password.

2.Используйте этот объект «Пользователь» из класса «Действие». Итак, вы передаете значения «ActionForm» (имя пользователя, пароль) в этот бизнес-метод, проверяете пользователя и получаете определенный тип пользователя (Хранение в сеансе) .

3. При последующих запросах, сделанных этим «Пользователем», проверьте тип пользователя и отправьте его соответствующим образом. Создайте пользовательский класс «Действие», который всегда проверяет тип пользователя (и другие проверки) для каждого действия, полученного от типа пользователя. Все остальные ваши классы 'Action' должны расширять этот пользовательский класс 'Action'.

Так я реализовал в одном из моих веб-приложений Struts, где более 3 типов пользователей с разными правами. Я никогда не видел отдельного шаблона URL для каждого типа пользователя. Так что лучше показать, http://www.yoursite.com/Process.action вместо http://www.yoursite.com/adminapp/Process.action

...