1. Клиент инициализирует запрос в контейнер сервлета (Tomcat);
2. Этот запрос проходит через серию фильтров, а затем называется фильтровая дипертизатора;
3. FilterDispatcher просит Actionmapper решить, должен ли запрос называть определенное действие;
4. Если ActionMapper решает вызвать действие, FilterDispatcher передает обработку запроса ActionProxy. ActionPro спрашивает файл конфигурации Framework в соответствии с ConfigurationManager и находит класс действий, который необходимо вызвать, обычно чтение Struts.xml;
5. ActionProxy создает экземпляр действия ActionInvocation. Экземпляр ActionInvocation называется с использованием именованного шаблона. До и после процесса вызова действия участвуют звонок соответствующего перехватчика;
6. Как только действие будет выполнено, ActionInvocation находит соответствующий результат возврата в соответствии с конфигурацией на struts.xml.
Например, код:
После того, как Struts2 получит запрос.
Все действия в приложениях Struts2 определены в struts.xml;
Экземпляр действия, используемый Struts2 для обработки запросов пользователей, является не бизнес-контроллером, но и является прокси-сервером действия, поскольку контроллер сервиса, реализованный пользователем, не сочетается с Servletapi и, очевидно, не может обрабатывать запросы пользователей.
<html> <head> <title> Успех </title> </head> <body> <form action = "hello.action" method = "post"> username: <input type = "text" name = "name"> </br> пароль: <input type = "password" name = "pass"> </br> <input type = "value ="> </form> </body> </html> </html> </html> </ht> </html> </html>
Например, Hello.Action из формы выше, это свойство действия не является обычным сервлетом или динамической страницей JSP. Когда форма отправляется в hello.action, FilterDispatcher struts2 будет работать и пересылать запрос пользователя в соответствующее действие.
Обратите внимание, что действие Struts2 перехватывает все запросы с суффиксами. Если нам нужно отправить форму в действие для обработки, атрибут действия формы должен быть установлен в формате.
Класс контроллера
Public Class HelloAction {Private String name; Private String Pass; public void setName (string name) {this.name = name;} public void setPass (string pass) {this.pass = pass;} public String execute () {if ("yang" .equals (name) && "1234" .equals (pass)) {return ";После того, как предыдущее выполнение завершено, пересылка страницы выполняется только, и статус пользователя не отслеживается. Когда пользователь входит в систему, нам нужно добавить имя пользователя пользователя в качестве информации о состоянии HTTPSession.
Чтобы получить доступ к экземпляру httpsession, Struts2 предоставляет класс ActionContext, который предоставляет метод GetSession (), но возвращаемое значение этого метода не является httpsession (), но Map (), но перехватчик Struts2 будет отвечать за переключение между сеансом () и httpsession ().
Чтобы проверить, успешно ли атрибут сеанса, который мы установим, мы можем установить интерфейс после успеха
<html> <Head> <base href = "<%= basepath%>" rel = "enformlolow"> <title> успех </title> </head> <body> добро пожаловать, $ {sessionscope.user}, вы уже вошли в систему. </body> </html>Используйте синтаксис выражения JSP2.0 для вывода атрибута пользователя в сеансе HTTP.
Действия по интеграции класса действий
Класс ActionSupport - это класс инструментов, и он реализовал интерфейс действия. Кроме того, он также реализует интерфейс Validatablez, предоставляя функцию проверки данных.
Чтобы увеличить функцию проверки входных данных, добавьте метод перезаписи проверки в действии.
public void validate () {if (getName () == null || getName (). trim (). equals ("")) {addFielderror ("name", getText ("name.required"));} if (getPass () == null || getPass () getText ("pass.required"));}}Перезаписанный метод проверки, добавленный выше, будет выполнен до метода системы execute (). Если Fielderror класса действий уже содержит ошибки проверки данных после выполнения этого метода, запрос будет пересылать в входное логическое представление, поэтому вам также необходимо добавить имя логического представления ввода в struts.xml, чтобы он перешел на страницу входа в систему.
Недостатком этого метода проверки является то, что он требует много переписывания метода проверки, поэтому вы можете использовать структуру проверки Struts2.
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Validators Public "-// OpenSymphony Group // xwork Validator 1.0.3 // en" "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd"> validators> namy namify-namy namy- <Field-validator type = "requiredString"> <key key = "name.required"/> </field-validator> </field> <!-проверка формы-> <field name = "pass"> <field-validator type = "requiredString"> <Сообщение = "pass.Required"/> </field-validator> </field> </valdator
Суммировать
Выше приведено все содержание этой статьи о процессе Struts2 и серии связанных анализа кода знаний. Я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!