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>


 

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

28344. Право собственности хозяйственных товариществ и обществ 14.59 KB
  товариществами и обществами признаются коммерческие организации с разделенными на доли учредителей уставным капиталом. товарищами или обществами в процессе его деятельности принадлежит ему на праве собственности. общества могут создаваться в форме акционерного общества общества с ограниченной или дополнительной ответственности. Участники ООО не отвечают по его обязательствам и несут риск убытков общества лишь в пределах стоимости внесенных ими вкладов.
28345. Понятие, субъекты, объекты и содержание права собственности кооперативов 14.75 KB
  Субъектом права собственности кооператива является каждая кооперативная организация признаваемая юр. лицом независимо от вида кооператива. К производственным кооперативам относятся кооперативы в сферах производства и оказания услуг и сельскохозяйственные кооперативы. Примером потребительского кооператива является и потребительское общество осуществляющее в интересах пайщиков заготовительную торговую и др.
28346. Субъекты, объекты и содержание права гос. собственности 13.58 KB
  собственности. собственности и муницип. собственности является ее публичный характер. государственной собственности являются: РФ ее субъекты.
28347. Право муниципальной собственности: понятие, содержание, субъекты и объекты 13.86 KB
  Право муниципальной собственности: понятие содержание субъекты и объекты. Муниципальная собственность – имущество принадлежащее на праве собственности муниципальным образованиям: городским сельским поселениям. Муницип. Муницип.
28348. Право собственности государственных и муниципальных унитарных предприятий 13.68 KB
  Муниципальные и унитарные предприятия относятся к государственным предприятиям в которых контрольный пакет акций принадлежит государству и находятся на его балансе. Унитарные предприятия передаются государством в полное хозяйственное владение трудовому коллективу. При этом государство не несет никакой ответственности за деятельность созданного им предприятия. Унитарные и МП относятся к государственным бюджетным предприятиям.
28349. Право собственности общественных и религиозных организаций 14.77 KB
  Право собственности общественных и религиозных организаций. Круг субъектов права собственности общественных организаций достаточно широк: это общественные организации общественные движения общественные фонды общественные учреждения органы общественной самодеятельности. Субъектами же права собственности могут выступать лишь общественные объединения обладающие правами юридического лица. Основаниями приобретения права собственности общественных объединений являются: вступительные и членские взносы добровольные взносы и пожертвования...
28350. Наименование места происхождения товара и его гражданско-правовая охрана 14.46 KB
  Наименование места происхождения товара и его гражданскоправовая охрана. Наименование места происхождения товара – обозначение представляющее собой либо содержащее современное или историческое наименование страны населенного пункта местности другого географического объекта или производное от такого наименования и ставшее известным в результате его использования в отношении товара особые свойства которого исключительно или главным образом определяются характерными для данного географического объекта природными условиями и или людскими...
28351. Личные неимущественные права: понятие и виды 14.19 KB
  Личные неимущественные права: понятие и виды. Личные неимущественные права в гражданскоправовом смысле представляют собой урегулированные нормами права связи между определенными субъектами по поводу личных неимущественных благ это субъективные права граждан возникающие вследствие регулирования нормами гражданского права личных неимущественных отношений не связанных с имущественными. При характеристике личных неимущественных прав как субъективных гражданских прав необходимо отметить что эти права являются правами строго личного характера....
28352. Право на защиту чести, достоинства и деловой репутации 14.91 KB
  Гражданин вправе требовать по суду опровержения порочащих его честь достоинство и деловую репутацию сведений если распространивший такие сведения не докажет что они соответствуют действительности Порочащими являются такие не соответствующие действительности сведения содержащие утверждения о нарушении гражданином действующего законодательства или моральных принципов которые умаляют его честь и достоинство. Под распространением сведений порочащих честь и достоинство граждан следует понимать опубликование таких сведений в печати...