http://wiki.linuxformat.ru/wiki/index.php?title=LXF94:Java_EE&feed=atom&action=historyLXF94:Java EE - История изменений2024-03-29T13:25:38ZИстория изменений этой страницы в викиMediaWiki 1.19.20+dfsg-0+deb7u3http://wiki.linuxformat.ru/wiki/index.php?title=LXF94:Java_EE&diff=6364&oldid=prevDionysius: /* Команды */2009-01-01T06:15:36Z<p><span dir="auto"><span class="autocomment">Команды</span></span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black;">Версия 06:15, 1 января 2009</td>
</tr><tr><td colspan="2" class="diff-lineno">Строка 10:</td>
<td colspan="2" class="diff-lineno">Строка 10:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Команды ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Команды ===</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">[[Media:JavaEE_LXF94.tar.gz|Скачать исходный код примера]]</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>В [[LXF92:Java EE|LXF92]] мы кратко описали стратегии, предназначенные для реализации «Контроллера», и обещали более подробно рассмотреть стратегию Command and Controller. Чтобы выполнить это обещание, нам придется сначала познакомиться с паттерном Command.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>В [[LXF92:Java EE|LXF92]] мы кратко описали стратегии, предназначенные для реализации «Контроллера», и обещали более подробно рассмотреть стратегию Command and Controller. Чтобы выполнить это обещание, нам придется сначала познакомиться с паттерном Command.</div></td></tr>
</table>Dionysiushttp://wiki.linuxformat.ru/wiki/index.php?title=LXF94:Java_EE&diff=6038&oldid=prevCrazy Rebel: оформление2008-12-15T12:14:00Z<p>оформление</p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black;">Версия 12:14, 15 декабря 2008</td>
</tr><tr><td colspan="2" class="diff-lineno">Строка 19:</td>
<td colspan="2" class="diff-lineno">Строка 19:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Команды удобны прежде всего тем, что они маскируют конкретную реализацию, находящуюся за интерфейсной прослойкой. Интерфейс остается одним и тем же, независимо от того, с чем работает команда [1].</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Команды удобны прежде всего тем, что они маскируют конкретную реализацию, находящуюся за интерфейсной прослойкой. Интерфейс остается одним и тем же, независимо от того, с чем работает команда [1].</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><source lang=<del class="diffchange diffchange-inline">csharp</del>></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><source lang=<ins class="diffchange diffchange-inline">java</ins>></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  public interface Command {</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  public interface Command {</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>     public void execute() throws Exception;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>     public void execute() throws Exception;</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Строка 33:</td>
<td colspan="2" class="diff-lineno">Строка 33:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Определим общие методы для абстрактного класса: initCommand() — предназначен для инициализации команды, makeDataToView() — для подготовки данных для отображения в случае их изменения, outputPage() — метод для переадресации пользователя (он будет перенесен из AddressBookServlet без изменений) и другие. Ниже представлена реализация методов initCommand() и makeDataToView():</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Определим общие методы для абстрактного класса: initCommand() — предназначен для инициализации команды, makeDataToView() — для подготовки данных для отображения в случае их изменения, outputPage() — метод для переадресации пользователя (он будет перенесен из AddressBookServlet без изменений) и другие. Ниже представлена реализация методов initCommand() и makeDataToView():</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><source lang=<del class="diffchange diffchange-inline">csharp</del>></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><source lang=<ins class="diffchange diffchange-inline">java</ins>></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  protected void initCommand(ServletContext sc, HttpServletRequest</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  protected void initCommand(ServletContext sc, HttpServletRequest</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  aRequest,</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  aRequest,</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Строка 65:</td>
<td colspan="2" class="diff-lineno">Строка 65:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Перейдем к реализации самих команд. Рассмотрим, например, метод execute() класса EditHTTPCommand. Он практически полностью соответствует первоначальному методу handleEdit класса AddressBookServlet, исключая переадресацию пользователя на конкретный вид.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Перейдем к реализации самих команд. Рассмотрим, например, метод execute() класса EditHTTPCommand. Он практически полностью соответствует первоначальному методу handleEdit класса AddressBookServlet, исключая переадресацию пользователя на конкретный вид.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><source lang=<del class="diffchange diffchange-inline">csharp</del>></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><source lang=<ins class="diffchange diffchange-inline">java</ins>></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  public void execute() throws Exception {</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  public void execute() throws Exception {</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>     if (aRequest.getParameter("number") == null) {</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>     if (aRequest.getParameter("number") == null) {</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Строка 93:</td>
<td colspan="2" class="diff-lineno">Строка 93:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Остальные команды реализуются аналогичным образом. Исключение из общего процесса рефакторинга кода составит команда ViewHTTPCommand, для которой уже реализована большая часть функционала:</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Остальные команды реализуются аналогичным образом. Исключение из общего процесса рефакторинга кода составит команда ViewHTTPCommand, для которой уже реализована большая часть функционала:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><source lang=<del class="diffchange diffchange-inline">csharp</del>></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><source lang=<ins class="diffchange diffchange-inline">java</ins>></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  public void execute() throws Exception {</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  public void execute() throws Exception {</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>   makeDataToView();</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>   makeDataToView();</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Строка 101:</td>
<td colspan="2" class="diff-lineno">Строка 101:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Выполнение любой команды унифицировано и будет выглядеть следующим образом:</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Выполнение любой команды унифицировано и будет выглядеть следующим образом:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><source lang=<del class="diffchange diffchange-inline">csharp</del>></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><source lang=<ins class="diffchange diffchange-inline">java</ins>></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>   Command cmd;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>   Command cmd;</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>   cmd = new EditHTTPCommand(this.getServletContext(),</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>   cmd = new EditHTTPCommand(this.getServletContext(),</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Строка 114:</td>
<td colspan="2" class="diff-lineno">Строка 114:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>После создания всех команд контроллер должен преобразиться: лишние методы уйдут, а его главная функция — управление — будет восстановлена:</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>После создания всех команд контроллер должен преобразиться: лишние методы уйдут, а его главная функция — управление — будет восстановлена:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><source lang=<del class="diffchange diffchange-inline">csharp</del>></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><source lang=<ins class="diffchange diffchange-inline">java</ins>></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  private void handle(HttpServletRequest aRequest,</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  private void handle(HttpServletRequest aRequest,</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>     HttpServletResponse aResponse) throws ServletException, IOException {</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>     HttpServletResponse aResponse) throws ServletException, IOException {</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Строка 157:</td>
<td colspan="2" class="diff-lineno">Строка 157:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Для решения первой из поставленных задач мы не будем «изобретать велосипед» и воспользуемся средствами конфигурирования web-приложения. В файл web.xml введем параметры для нашего контроллера:</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Для решения первой из поставленных задач мы не будем «изобретать велосипед» и воспользуемся средствами конфигурирования web-приложения. В файл web.xml введем параметры для нашего контроллера:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><source lang=<del class="diffchange diffchange-inline">csharp</del>></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><source lang=<ins class="diffchange diffchange-inline">java</ins>></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  <servlet></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  <servlet></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>   <display-name>AddressBook</display-name></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>   <display-name>AddressBook</display-name></div></td></tr>
<tr><td colspan="2" class="diff-lineno">Строка 188:</td>
<td colspan="2" class="diff-lineno">Строка 188:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Для каждого адреса вводится параметр, который мы будем называть ключом (для «/» это «root»). Ключ с добавлением суффикса (Command, View, Result, Error) обозначает конкретный параметр, значение которого мы будем извлекать прямо в приложении. Для получения необходимых данных можно воспользоваться следующим кодом (хотя мы в дальнейшем будем действовать по-другому):</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Для каждого адреса вводится параметр, который мы будем называть ключом (для «/» это «root»). Ключ с добавлением суффикса (Command, View, Result, Error) обозначает конкретный параметр, значение которого мы будем извлекать прямо в приложении. Для получения необходимых данных можно воспользоваться следующим кодом (хотя мы в дальнейшем будем действовать по-другому):</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><source lang=<del class="diffchange diffchange-inline">csharp</del>></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><source lang=<ins class="diffchange diffchange-inline">java</ins>></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  ServletContext sc = this.getServletContext();</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  ServletContext sc = this.getServletContext();</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>   String key = sc.getInitParameter("/");</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>   String key = sc.getInitParameter("/");</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Строка 204:</td>
<td colspan="2" class="diff-lineno">Строка 204:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>класса конструктору необходимо передать ряд параметров, то воспользоваться данным методом нельзя, но создать объект возможно с помощью класса java.lang.reflect.Constructor, например:</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>класса конструктору необходимо передать ряд параметров, то воспользоваться данным методом нельзя, но создать объект возможно с помощью класса java.lang.reflect.Constructor, например:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><source lang=<del class="diffchange diffchange-inline">csharp</del>></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><source lang=<ins class="diffchange diffchange-inline">java</ins>></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  Class c = Class.forName(key);</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  Class c = Class.forName(key);</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  Class[] parameterTypes = new Class[3];</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  Class[] parameterTypes = new Class[3];</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Строка 232:</td>
<td colspan="2" class="diff-lineno">Строка 232:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Ниже представлен ключевой метод getCommand() класса CommanFactory, в котором согласно параметру name извлекаются настройки из файла конфигурации web-приложения и создается экземпляр необходимой команды (метод реализован не оптимально):</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Ниже представлен ключевой метод getCommand() класса CommanFactory, в котором согласно параметру name извлекаются настройки из файла конфигурации web-приложения и создается экземпляр необходимой команды (метод реализован не оптимально):</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><source lang=<del class="diffchange diffchange-inline">csharp</del>></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><source lang=<ins class="diffchange diffchange-inline">java</ins>></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  public Command getCommand(String name, HttpServletRequest</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  public Command getCommand(String name, HttpServletRequest</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  aRequest,</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  aRequest,</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Строка 272:</td>
<td colspan="2" class="diff-lineno">Строка 272:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Добавим последний штрих в web-приложение — изменим метод handle класса AddressBookServlet, чтобы он работал с созданной фабрикой:</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Добавим последний штрих в web-приложение — изменим метод handle класса AddressBookServlet, чтобы он работал с созданной фабрикой:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><source lang=<del class="diffchange diffchange-inline">csharp</del>></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><source lang=<ins class="diffchange diffchange-inline">java</ins>></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  Command cmd;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  Command cmd;</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  CommandFactory cf = new CommandFactory(this.getServletConfig(),this.getServletContext());</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  CommandFactory cf = new CommandFactory(this.getServletConfig(),this.getServletContext());</div></td></tr>
</table>Crazy Rebelhttp://wiki.linuxformat.ru/wiki/index.php?title=LXF94:Java_EE&diff=6037&oldid=prevCrazy Rebel в 12:06, 15 декабря 20082008-12-15T12:06:11Z<p></p>
<a href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF94:Java_EE&diff=6037&oldid=5012">Внесённые изменения</a>Crazy Rebelhttp://wiki.linuxformat.ru/wiki/index.php?title=LXF94:Java_EE&diff=5012&oldid=prevYaleks: /* Команды */2008-07-09T13:38:08Z<p><span dir="auto"><span class="autocomment">Команды</span></span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black;">Версия 13:38, 9 июля 2008</td>
</tr><tr><td colspan="2" class="diff-lineno">Строка 11:</td>
<td colspan="2" class="diff-lineno">Строка 11:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Команды ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Команды ===</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>В [[LXF92]] мы кратко описали стратегии, предназначенные для реализации «Контроллера», и обещали более подробно рассмотреть стратегию Command and Controller. Чтобы выполнить это обещание, нам придется сначала познакомиться с паттерном Command.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>В [[<ins class="diffchange diffchange-inline">LXF92:Java EE|</ins>LXF92]] мы кратко описали стратегии, предназначенные для реализации «Контроллера», и обещали более подробно рассмотреть стратегию Command and Controller. Чтобы выполнить это обещание, нам придется сначала познакомиться с паттерном Command.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Задача, которая стоит перед контроллером (сервлетом) при получении управляющего сигнала, как правило, заключается в выполнении последовательности действий, часто атомарной (то есть обрабатываемой как единое целое). Например, в сервлете AddressBookServlet, реализованном в предыдущей статье, метод handleEdit вызывается, когда адрес на который обращается пользователь — это «/edit».</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Задача, которая стоит перед контроллером (сервлетом) при получении управляющего сигнала, как правило, заключается в выполнении последовательности действий, часто атомарной (то есть обрабатываемой как единое целое). Например, в сервлете AddressBookServlet, реализованном в предыдущей статье, метод handleEdit вызывается, когда адрес на который обращается пользователь — это «/edit».</div></td></tr>
</table>Yalekshttp://wiki.linuxformat.ru/wiki/index.php?title=LXF94:Java_EE&diff=4515&oldid=prevLockal: восстановление кавычек в коде AWB2008-04-27T14:18:34Z<p>восстановление кавычек в коде <a href="/wiki/index.php?title=Linuxformat:AutoWikiBrowser&action=edit&redlink=1" class="new" title="Linuxformat:AutoWikiBrowser (страница не существует)">AWB</a></p>
<a href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF94:Java_EE&diff=4515&oldid=3130">Внесённые изменения</a>Lockalhttp://wiki.linuxformat.ru/wiki/index.php?title=LXF94:Java_EE&diff=3130&oldid=prevLockal: {{Цикл/Java EE}}2008-03-22T08:33:21Z<p>{{Цикл/Java EE}}</p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black;">Версия 08:33, 22 марта 2008</td>
</tr><tr><td colspan="2" class="diff-lineno">Строка 1:</td>
<td colspan="2" class="diff-lineno">Строка 1:</td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">{{Цикл/Java EE}}</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Команды и фабрики ==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Команды и фабрики ==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>''ЧАСТЬ 6 '''Антон Черноусов''' готов познакомить вас с очередной партией паттернов, которые помогут сделать ваши приложения еще более гибкими и расширяемыми.''</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>''ЧАСТЬ 6 '''Антон Черноусов''' готов познакомить вас с очередной партией паттернов, которые помогут сделать ваши приложения еще более гибкими и расширяемыми.''</div></td></tr>
</table>Lockalhttp://wiki.linuxformat.ru/wiki/index.php?title=LXF94:Java_EE&diff=3128&oldid=prevLockal в 08:32, 22 марта 20082008-03-22T08:32:03Z<p></p>
<a href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF94:Java_EE&diff=3128&oldid=3127">Внесённые изменения</a>Lockalhttp://wiki.linuxformat.ru/wiki/index.php?title=LXF94:Java_EE&diff=3127&oldid=prevLockal: Перенаправление на LXF94:Команды и фабрики2008-03-22T08:30:50Z<p>Перенаправление на <a href="/wiki/LXF94:%D0%9A%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B_%D0%B8_%D1%84%D0%B0%D0%B1%D1%80%D0%B8%D0%BA%D0%B8" class="mw-redirect" title="LXF94:Команды и фабрики">LXF94:Команды и фабрики</a></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black;">Версия 08:30, 22 марта 2008</td>
</tr><tr><td colspan="2" class="diff-lineno">Строка 1:</td>
<td colspan="2" class="diff-lineno">Строка 1:</td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">{{Цикл/Java EE}}</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">#REDIRECT [[LXF94:Команды и фабрики]]</ins></div></td></tr>
</table>Lockalhttp://wiki.linuxformat.ru/wiki/index.php?title=LXF94:Java_EE&diff=2746&oldid=prevMaximax: Новая: {{Цикл/Java EE}}2008-03-19T07:14:00Z<p>Новая: {{Цикл/Java EE}}</p>
<p><b>Новая страница</b></p><div>{{Цикл/Java EE}}</div>Maximax