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>


 

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

79574. ALBERT EINSTEIN 192.53 KB
  LBERT EINSTEIN lbert Einstein wellknown Germn physicist nd mthemticin ws born in Germny on Mrch 14 1879. t the ge of 21 fter four yers of university study lbert Einstein got job s clerk in n office. Einstein expressed his theory in the eqution E = mc2 roughly tht energy equls mss times the squre of the speed of light. Which institute did he tech in Wht lbortory did he do his reserch in Einstein\'s fme mong scientists grew slowly but surely.
79575. MACHINE TOOLS — A MEASURE OF MANS PROGRESS 293.76 KB
  MCHINE TOOLS MESURE OF MN\'S PROGRESS The vriety nd combintions of mchine tools tody re unlimited. The min mchine tool of such workshop is the multipurpose lthe. Wht is lthe It is powerdriven mchine with specil tools which cn cut or form metl prts. Technologicl progress improves ccurcy of mchine tools.
79576. IN THE CHEMICAL LABORATORY 606.12 KB
  Nerly in the middle there stnds Bunsen burner with flsk over it. During n experiment the Bunsen burner is connected with the min gs line by rubber tube. The flme of the burner is being regulted by mens of tp. From time to time Brbr looks up t the solution which is boiling on the Bunsen burner.
79577. RADIO AND TV MARCH AHEAD 301.2 KB
  RDIO ND TV MRCH HED More thn 100 yers pssed since the dy when the Russin scientist lexnder Popov demonstrted his storm indictor which ws the prototype of modern rdio receivers. Gret progress hs been mde in rdio engineering rdio communictions rdio brodcstings nd television since tht time. In the modern world rdio nd television ply n importnt role s mss medi of informtion nd s mens of...
79578. BETTER METALS ARE VITAL TO TECHNOLOGICAL PROGRESS 27.15 KB
  Since the erliest dys the preprtion of metls for mechnicl use ws vitl to the dvnce of civiliztion. Tody we know more thn sixtyfive metls vilble in lrge enough quntities to be used in industry. Metls re mostly solids t ordinry tempertures nd possess comprtively high melting points with the exception of mercury. The Erth contins lrge number of metls useful to mn.
79579. SOURCES OF POWER 28.42 KB
  SOURCES OF POWER The industril progress of mnkind is bsed on power: power for industril plnts mchines heting nd lighting systems trnsport communiction. In fct one cn hrdly find sphere where power is not required. t present most of the power required is obtined minly from two sources. The second wy of producing electricity is by mens of genertors tht get their power from stem or wter turbines.
79580. PULKOVO - RUSSIAS MAIN OBSERVATORY 175.09 KB
  Two gret observtories. Greenwich nd Pulkovo occupy leding plce mong the observtories of the world. Pulkovo is situted in hilly re some kilometres from St. You cnt get to Pulkovo by trin: when the rilwy ws being built the stronomers specilly sked tht it should be kepi severl kilometres wy so tht there should be no vibrtion to ffect the sensitive instruments.
79581. FUNDAMENTALS OF THEORY AND PRACTICE OF TRANSLATION 1.44 MB
  Тhe educational material is grouped in topical arrangements and staffed within the case modules’ framework representing the set of submodules enabling one to familiarize the trainees with the theoretical information and to consolidate it in slideshow illustrations, assignments, exercises.
79582. Эмпирическое исследование особенности развития мыслительных процессов детей младшего школьного возраста с задержкой психического развития 2.43 MB
  Целью эмпирического исследования в данной выпускной квалификационной работе является анализ особенностей мышления у детей с задержкой психического развития младшего школьного возраста, и разработать рекомендации для общеобразовательных учреждений о коррекционной работе с детьми с задержкой психического развития.