30
January
2006

Ограничение доступа или защита jsp-страниц

Posted in: Java Web Design, J2EE, Java technologies, J2SE | 7 Comments

В этой статье я приведу небольшой пример того, как защитить jsp-страницы вашего приложения от несанкционированного доступа.
Все, что вам нужно, - это создать небольшой Java-класс и наследовать jsp-страницы от него.
А вот и упрощенный пример такого класса (импорт пакетов опущен):
(more…)

28
January
2006

Нежелательное кэширование

Posted in: Java Web Design, J2EE, Java technologies, J2SE | 3 Comments

Кэширование страниц браузерами (FireFox, Opera) действительно полезная вещь. Правда, иногда это только мешает.
При разработке серьезных веб-приложений (в частности с помощью Java) важна актуальность информации на страницах сайта. В этом случае нужно застраховаться от того, что кто-то из пользователей во всю пользуется возможностью браузера кэшировать страницы.
Есть простой способ решить эту проблему.
(more…)

23
January
2006

Паттерн Abstract Factory (шаблон Абстрактная Фабрика на Java)

Posted in: Паттерны проектирования | 10 Comments

В предыдущей статье по проектированию был описан паттерн Factory Method. Как и было обещано, на этот раз мы рассмотрим шаблон проектирования под названием Abstract Factory.
Абстрактная фабрика предоставляет интерфейс для создания целых семейств объектов без указания конкретных классов. Объекты каждого семейства должны быть логически связаны между собой.
Перед тем, как привести пример использования Фабрики на Java, рассмотрим небольшую диаграмму классов (с Paint я творю чудеса :)):
(more…)

18
January
2006

Четвертое измерение

Posted in: Ваш досуг. Полезные советы | 26 Comments

Наше пространство является трехмерным и все что выходит за грани длины, ширины и высоты человек представить не в состоянии. Тем не менее, можно сделать некоторые выводы по поводу высших измерений.
Попробуем логически предположить, что же такое четвертое измерение (гиперкуб, гиперсфера).
(more…)

14
January
2006

Регрессионное тестирование (regression testing)

Posted in: Тестирование кода | 2 Comments

У вас не случалось такого: закончили проект, во время активного использования обраружили пару багов, исправили, заодно и пару функций добавили, а потом через некоторое время обнаружили, что код, с которым раньше не было проблем, нормально не работает?
По достоверным данным кол-во ошибок после изменения кода (будь-то добавление новой функциональности или же исправление багов) составляет около 50%. Для того, чтобы выявить эти ошибки, и нужно регрессионное тестирование (regression test).
Перечислю основные виды тестов регрессии в порядке их важности (обычно в таком порядке их и выполняют).
(more…)

13
January
2006

Небольшой отчет

Posted in: Разное (uncategorized) | 4 Comments

Прошел ровно месяц с момента появления в Internet блога Javenue.
Спасибо огромное всем, кто так или иначе помог при его создании и развитии. Ну и конечно же хочется поблагодарить всех посетителей этого сайта: без вас этот ресурс ничего не стоит. Уверен, что многие люди нашли здесь именно то, что искали.
Но останавливаться на достигнутом я не собираюсь. С нетерпением жду ваших замечаний и предложений по поводу тематики и содержимого ресурса. Каждый комментарий будет рассмотрен и принят к сведению.
Желаю удачи всем, кого я знаю и не знаю.
(more…)

10
January
2006

Анти-паттерн проектирования (Java): интерфейс для констант

Posted in: Java technologies, J2SE, Паттерны проектирования | 23 Comments

Ошибка, которая будет описана в данной статье, иногда привлекает Java-программистов своей многообещающей простой (я знаю, о чем говорю, так как сам ее допускал).
При программировании очень часто приходится использовать константы. Константа, описанная в некотором классе, иногда может понадобится и в другом классе.
Если описать константу в интерфейсе, назовем его символично Unacceptable, то затем можно декларировать любой класс как реализующий (implements) этот интерфейс (interface) и использовать нашу полезную константу:
(more…)

6
January
2006

Операторы Inner Join и Outer (left, right, full) Join в SQL (Oracle)

Posted in: Базы данных, SQL, Oracle | 83 Comments

Ключевое слово join в SQL используется при построении select выражений. Инструкция Join позволяет объединить колонки из нескольких таблиц в одну. Объединение происходит временное и целостность таблиц не нарушается. Существует три типа join-выражений:

  • inner join;
  • outer join;
  • cross join;

В свою очередь, outer join может быть left, right и full (слово outer обычно опускается).
В качестве примера (DBMS Oracle) создадим две простые таблицы и сконструируем для них SQL-выражения с использованием join.
(more…)

2
January
2006

Тестирование с помощью JUnit (Test Case)

Posted in: Java open-source проекты, Тестирование кода, Java technologies, J2SE | 16 Comments

English version of this article you can find here.
Тестирование далеко не всегда бывает веселым и интересным. Этот процесс обычно достаточно продолжителен и полон монотонной работы. Большинство программистов пользуются стандартным выводом или же дебаггером для тестирования их классов.
В этой статье я опишу библиотеку JUnit, которая упрощает и во многом автоматизирует процесс написания тестов.
Для демонстрации основных возможностей JUnit Framework, напишем примитивный класс на языке Java и будем над ним издеваться. Этот класс будет иметь два метода - нахождение факториала и суммы двух чисел:
(more…)