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>


 

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

25630. Дифференцировка первичной эктодермы 39 KB
  Меньшая часть эктодермы расположенная над хордой нейроэктодерма дает начало дифференцировке нервной трубки и ганглиозной пластинки. Нейруляция процесс образования нервной трубки протекает по времени неодинаково в различных частях зародыша. Замыкание нервной трубки начинается в шейном отделе а затем распространяется кзади и несколько замедленнее в краниальном направлении где формируются мозговые пузыри. Из нервной трубки образуются нейроциты и нейроглия головного и спинного мозга сетчатки глаза и органа обоняния.
25631. Диффузная эндокринная система 32 KB
  Среди одиночных гормонпродуцирующих клеток различают две самостоятельные группы: I нейроэндокринные клетки APUDсерии нервного происхождения; II клетки не нервного происхождения. Эти клетки характеризуются способностью поглощать и декарбоксилировать предшественники аминов англ. Согласно современным представлениям клетки APUDсерии развиваются из всех зародышевых листков и присутствуют во всех тканевых типах: 1 производные нейроэктодермы {нейроэндокринные клетки нейросекреторных ядер гипоталамуса эпифиза мозгового вещества...
25632. Железистые эпителии 42.5 KB
  Железистый эпителий состоит из железистых или секреторных клеток гландулоцитов. Они накапливаются в местах наибольшей активности клеток т. В цитоплазме клеток обычно присутствуют секреторные гранулы размер и строение которых зависят от химического состава секрета. Цитолемма имеет различное строение на боковых базальных и апикальных поверхностях клеток.
25633. Желудок 56 KB
  Пепсин вырабатывается в неактивной форме в виде пепсиногена который в содержимом желудка в присутствии соляной кислоты превращается в активную форму пепсин. Слизь покрывая поверхность слизистой оболочки желудка предохраняет ее от действия хлористоводородной кислоты и от повреждения грубыми комками пищи. Механическая функция желудка состоит в перемешивании пищи с желудочным соком и проталкивания переработанной пищи в двенадцатиперстную кишку. В осуществлении функции принимает участие мускулатура желудка.
25634. Желчь 31 KB
  К ним относятся внутрипеченочные и внепеченочные желчные протоки. К внутрипеченочным принадлежат междольковые желчные протоки а к внепеченочным правый и левый печеночные протоки общий печеночный пузырный и общий желчный протоки. Междольковые желчные протоки вместе с разветвлениями воротной вены и печеночной артерии образуют в печени триады. На этом основании предполагают что междольковые желчные протоки выполняют секреторную функцию.
25635. ИММУННАЯ СИСТЕМА И КЛЕТОЧНЫЕ ВЗАИМОДЕЙСТВИЯ В ИММУННЫХ РЕАКЦИЯХ 37 KB
  Иммунная система объединяет органы и ткани в которых происходит образование и взаимодействие клеток иммуноцитов выполняющих функцию распознавания генетически чужеродных субстанций антигенов и осуществляющих специфическую реакцию. Иммунитет это защита организма от всего генетически чужеродного микробов вирусов от чужих клеток или генетически измененных собственных клеток. В организме взрослого человека она представлена красным костным мозгом источником стволовых клеток для иммуноцитов центральным органом лимфоцитопоэза...
25636. Иммунокомпетентные клетки 51 KB
  Лимфоциты Популяция лимфоцитов функционально неоднородна. Различают три основных вида лимфоцитов: Тлимфоциты Влимфоциты и так называемые нулевые лимфоциты 0клетки. Олимфоциты нулевые лишены поверхностных маркеров и рассматриваются как резервная популяция недифференцированных лимфоцитов. Тлимфоциты самая многочисленная популяция лимфоцитов составляющая 70 90 лимфоцитов крови.
25637. Волокнистые соединительные ткани 45 KB
  Клетки. Основными клетками соединительной ткани являются фибробласты макрофаги тучные клетки адвентициальные клетки плазматические клетки перициты жировые клетки а также лейкоциты мигрирующие из крови; иногда пигментные клетки. Фибробласты фибробластоциты клетки синтезирующие компоненты межклеточного вещества: белки коллаген эластин протеогликаны гликопротеины. Среди мезенхимных клеток имеются стволовые клетки дающие начало дифферону фибробластов: стволовые клетки полустволовые клеткипредшественники...
25638. КОЖА И ЕЕ ПРОИЗВОДНЫЕ 95 KB
  Толщина кожи вирьирует от 05 до 5 мм. У взрослого человека в сосудах кожи может задерживаться до 1 л крови. В некоторых участках кожи например на голове и кистях на 1 см2 ее поверхности насчитывается до 300 чувствительных точек. В первые недели развития зародыша эпителий кожи состоит всего из одного слоя плоских клеток.