18125

Struts Framework

Лекция

Информатика, кибернетика и программирование

Тема 10: Struts Framework Apache Struts – це opensource framework для розробки Java EE web програм. В ньому використовується і розширюється Java Servlet API та надається базова інфраструктура для реалізації програми на основі шаблону проектування design pattern MVC. Базова платформа для використання Struts 2 вклю...

Украинкский

2013-07-06

175 KB

2 чел.


Тема 10: Struts Framework

Apache Struts – це open-source framework для розробки Java EE web програм. В ньому використовується і розширюється Java Servlet API та надається базова інфраструктура для реалізації програми на основі шаблону проектування (design pattern) MVC. Базова платформа для використання Struts 2 включає Servlet API 2.4, JSP API 2.0 та Java 5. Архітектура Struts є елегантною та гнучкою і базується на стандартних технологіях, таких, як Java Filters, Java Beans, ResourceBundles, XML тощо. 

Основна задача Struts полягає в реалізації MVC, тобто чіткого розділення model (логіки програми, яка може взаємодіяти з базою даних) від view (сторінок, що показуються у броузері користувача) та controller (компонентів, що передають інформацію між model та view і керують перебігом програми). Для model Struts може використовувати різноманіття технологій доступу до баз даних, таких, як  JDBC, JPA, Hibernate тощо, а view може базуватись на JSP, JTL, JSF, Jakarta Velocity Engine, Templates, PDF, XSLT тощо.

На рисунку зображено життєвий цикл обробки запиту від користувача програмою, що базується на Struts2. Запит надходить до сервлет-контейнера, такого, як Tomcat і потім проходить через стандартний ланцюг фільтрів.

ActionContextCleanUp та Other Filters (SiteMesh, etc) є необов’язковими. При виклику FilterDispatch перевіряється з використанням ActionMapper чи викликати Action (реалізація controller) чи ні. Якщо action повинен виконуватись, то FilterDispatcher передає керування ActionProxy. ActionProxy звертається до Configuration Files Manager, який бере дані з конфігураційного файлу struts-config.xml. Потім ActionProxy створює ActionInvocation, який реалізує собою шаблон команди. Процес ActionInvocation викликає Interceptors (перехоплювачі – якщо такі вказані) та потім викликає action. Потім ActionInvocation знаходить відповідний Result, який виконується, забезпечуючи формування результату, який побачить користувач з JSP чи іншого шаблону. Потім інтерсептори виконуються знову в зворотньому порядку. Нарешті, відповідь повертається через фільтри, описані в файлі web.xml.

Struts надає для використання controller (сервлет ActionServlet) і полегшує створення шаблонів для презентаційного рівня (зазвичай це JSP, але також можуть використовуватись XML/XSLT і Velocity). Розробник web програми повинен створити код model, а також створити основний конфігураційний файл struts.xml, в якому зв’язуються model, view і controller.

Приклад найпростішої програми з використанням Struts Framework.

Структуру програми можна побачити на рисунку:

Програма починається з файлу index.html, який перенаправляє подальше виконання на URL example/HelloWorld.action, який являє собою насправді action-об’єкт Struts:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

<head>

   <META HTTP-EQUIV="Refresh" CONTENT="0;URL=example/HelloWorld.action">

</head>

<body>

<p>Loading ...</p>

</body>

</html>

URL example/HelloWorld.action описується в файлі struts.xml – спеціальному конфігураційному файлі Struts, який повинен знаходитись в папці WEB-INF/classes. Приклад файлу:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

<constant name="struts.enable.DynamicMethodInvocation" value="false" />

<constant name="struts.devMode" value="true" />

<package name="example" namespace="/example" extends="struts-default">

 <action name="HelloWorld" class="org.chdtu.trystruts.Struts2HelloWorld">

  <result>/pages/HelloWorld.jsp</result>

 </action>

</package>

</struts>

Елемент action, який виконує функцію контроллера, має вигляд:

package org.chdtu.trystruts;

import com.opensymphony.xwork2.ActionSupport;

import java.util.Date;

public class Struts2HelloWorld extends ActionSupport {

   public static final String MESSAGE = "Struts 2 Hello World!";

   public String execute() throws Exception {

       setMessage(MESSAGE);

       return SUCCESS;

   }

   private String message;

   public void setMessage(String message){

       this.message = message;

   }

   public String getMessage() {

       return message;

   }

 public String getCurrentTime(){

     return new Date().toString();

 }

}

При передачі йому керування автоматично виконується метод execute(). В Struts2 екземпляр action створюється для кожного запиту і знищується зразу після завершення запиту.

JSP сторінка виведення результату HelloWorld.jsp:

<%@ page contentType="text/html; charset=UTF-8" %>

<%@ taglib prefix="s" uri="/struts-tags" %>

<html>

<head>

<title>Struts 2 Hello World Application!</title>

</head>

<body>

<h2><s:property value="message" /></h2>

<p>Current date and time is: <b><s:property value="currentTime"/></b>

</body>

</html>


 

А также другие работы, которые могут Вас заинтересовать

83417. Гра «Квест» 227 KB
  Учасникам видається завдання якщо ви вірно розгадуєте його за відведений час то одержуєте завдання в якому зашифровано номер чи назву кабінету в якому вам дадуть наступне завдання. Дискваліфікація за ЧІТ передавання відповіді іншій команді обох команд Команди самі слідкують за часом...
83418. Микола Трублаїні «Тико і Волохан» 30 KB
  Вибіркове читання оповідання Ю. Про той холодний край людей які живуть там письменник розповів у своїх оповіданнях. Вступова бесіда до оповідання З оповідання Миколи Трублаїні ми дізнаємося про життя людей у тундрі на березі холодного Північно-Льодовитого океану.
83419. Леся Українка і її вірші для маленьких. Робота з дитячою книжкою 253.5 KB
  Мета: ознайомити дітей з життям і творчістю Лесі Українки, її творами для малят; удосконалювати навички виразного усвідомленого читання; формувати вміння зв’язно, послідовно передавати почуте; розвивати пізнавальну активність школярів, усне мовлення, естетичні смаки; збагачувати словниковий запас учнів...
83420. А. Барто «Лебединое горе». Пословицы. Е. Благинина «Елка». Загадки 44.5 KB
  Работать над содержанием произведений. Формировать навыки выразительного чтения. Развивать познавательный интерес, связную речь, мышление, умение анализировать. Обогащать словарный запас. Воспитывать любовь к природе, желание приходить на помощь, сочувствие к чужому горю; чувства любви и дружбы.
83421. «Риторика та поезія» С.Я. Маршак 28.5 KB
  Реалізувати пропедевтичні знання про поетичну творчість дитячого поета С.Я. Маршака через методи інтерактивного навчання, розвивати уміння відрізняти риторичні не словесні засоби спілкування від літературних (поетичних)засобів, закріплювати уміння декламувати вірш з риторичними засобами...
83422. Здається, байка просто бреше, а справді ясну правду чеше. Л.Глібов «Лебідь, Щука і Рак», «Коник-стрибунець» 37 KB
  Ознайомити дітей із жанром байки; розвивати способи і види читання байки вчити передавати в інтонації характери дійових осіб оцінювати їхні вчинки виявляти мотиви їхньої поведінки; виховувати в дітей товариськість любов до праці. Сьогодні ми ознайомимося з новим розділом Байки.
83423. У різні пори року приваблива земля 237.5 KB
  У зелених пишних шатах у яскравому вінку прийшла до нас весна. Не забула весна заглянути і в ліс посіяла там травицю пролісками заквітчала галявини задзвеніла піснями пташок. Весна стала господаркою і в нашому краї а земля дочекалася працелюбних рук.
83424. Два різних світи – одне ціле. Програма виховної роботи 340 KB
  Дорослішання сучасної молоді відбувається в складних умовах. Нестабільність сімейного інституту, неактуальність традиційної підготовки молоді до шлюбу диктують необхідність використання спеціальних заходів для надання допомоги дітям в усвідомленні своєї статевої приналежності, формування адекватного...
83425. Розважально-пізнавальна програма. Сім’Я. Сім’Я. Сім’Я 105 KB
  А зараз з великим задоволенням разом рушимо вперед. Кожному з вас доведеться сім разів проявити себе. Оскільки в сім’ї тільки починає складатися життєвий досвід дитини, тому, проявляючи своє Я, він має право звернутися по допомогу або до мами, або до тата, а, може, і до обох відразу.