Ведущие Страницы ASP.NET, эквивалентные в Java

Существует 3 способа управления памятью: -

GC работает только для управляемых ресурсов, поэтому .NET предоставляет Dispose и Finalize для выпуска неуправляемых ресурсов, таких как поток, подключение к базе данных, COM-объекты и т. д. ..

1) Dispose

Dispose следует вызывать явно для типов, которые реализуют IDisposable.

Программист должен вызывать это либо с помощью Dispose (), либо с помощью функции Create

Используйте GC.SuppressFinalize (this), чтобы предотвратить вызов Finalizer, если вы уже использовали dispose ()

2) Finalize или Distructor

Он называется неявным после того, как объект имеет право на очистку, финализатор для объектов вызывается последовательно по потоку финализатора.

Недостатком реализации финализатора является то, что его восстановление памяти задерживается, поскольку финализатор для такого класса / типов должен быть вызван предварительной очисткой,

3) GC.Collect ()

Использование GC.Collect () не обязательно устанавливает GC для сбора, GC все еще может переопределять и запускать, когда захочет.

также GC.Collect () будет запускать трассировочную часть сбора мусора и добавлять элементы в очередь финализатора, но не вызывать финализаторы для типов, которые обрабатываются другим потоком .

Используйте WaitForPendingFinalizers, если вы хотите убедиться, что все финализаторы были вызваны после вызова GC.Collect ()

6
задан Jason Bunting 28 August 2008 в 21:31
поделиться

2 ответа

Во-первых, эквивалент ASP.NET в Java будет веб-платформой, такой как те, Вы упоминаете (Мозаики, Гобелен и Скорость).

Основные страницы дают способность определить страницы с точки зрения содержания, вставленного в основной шаблон.

Основные страницы являются функцией ASP.NET (веб-платформа .NET), таким образом, Вы ищете функцию, подобную основным страницам в веб-платформе Java.

http://tiles.apache.org/framework/tutorial/basic/pages.html дает некоторые основные примеры с помощью Мозаик и JSP для реализации чего-то похожего с Struts, веб-платформой Java. В этом случае Основная функциональность Страниц является плагином сверху Struts.

Скорость является универсальным механизмом шаблонной обработки, не специализированным для веб-страниц и определенно более сложным, чем Вам нужно. (Я видел, что это использовало для генерации кода.)

Гобелен является большим количеством полнофункционального веб-стека, чем Мозаика и вероятно хорош для Ваших целей. Его функциональность шаблонной обработки включает создание компонента и помещение всей общей разметки в этом. Пример по http://www.infoq.com/articles/tapestry5-intro.

Специфические особенности этого отличаются, на основе которой веб-платформы Java Вы выбираете.

4
ответ дан 8 December 2019 в 13:04
поделиться

Необходимо также проверить Facelets; существует хорошая вводная статья о DeveloperWorks.

Facelet <ui:insert/> тег сопоставим с ASP.NET <asp:ContentPlaceHolder/> тег используется на основных страницах; это позволяет Вам обеспечить содержание по умолчанию для той области страницы, но это может быть переопределено.

Для заполнения шаблона Facelets на другой странице Вы запускаете с a <ui:composition/> элемент, который указывает на шаблонный файл. Это примерно эквивалентно объявлению атрибута MasterPageFile на странице ASP.NET.

В <ui:composition/> элемент, Вы используете <ui:define/> элементы для переопределения шаблонных значений по умолчанию, подобных пути <asp:Content/> тег используется. Эти элементы могут содержать любой вид содержания - от простых строк до элементов JSF.

Так, для объединения всего этого...

В master.xhtml:

<!-- HTML header content here -->
<ui:insert name="AreaOne">Default content for AreaOne</ui:insert>
<ui:insert name="AreaTwo">Default content for AreaTwo</ui:insert>
<!-- HTML footer content here -->

В page.xhtml:

<ui:composition template="/WEB-INF/templates/master.xhtml">
  <ui:define name="AreaOne">Here is some new content</ui:define>
  <ui:define name="AreaTwo">
    <p>Some new content here too</p>
  </ui:define>
</ui:composition>

И это представит как:

<!-- HTML header content here -->
Here is some new content
<p>Some new content here too</p>
<!-- HTML footer content here -->

Вы также извлекаете некоторую другую пользу с Facelets, такую как способность снова использовать компоненты страницы с различными данными.

(Отредактированный для предоставления большей информации.)

12
ответ дан 8 December 2019 в 13:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: