January
Ограничение доступа или защита jsp-страниц
Posted in: Java Web Design, J2EE, Java technologies, J2SE | 4 Comments
В этой статье я приведу небольшой пример того, как защитить jsp-страницы вашего приложения от несанкционированного доступа.
Все, что вам нужно, - это создать небольшой Java-класс и наследовать jsp-страницы от него.
А вот и упрощенный пример такого класса (импорт пакетов опущен):
(more…)
January
Кэширование страниц браузерами (FireFox, Opera) действительно полезная вещь. Правда, иногда это только мешает.
При разработке серьезных веб-приложений (в частности с помощью Java) важна актуальность информации на страницах сайта. В этом случае нужно застраховаться от того, что кто-то из пользователей во всю пользуется возможностью браузера кэшировать страницы.
Есть простой способ решить эту проблему.
(more…)
January
Паттерн Abstract Factory (шаблон Абстрактная Фабрика на Java)
Posted in: Паттерны проектирования | 4 Comments
В предыдущей статье по проектированию был описан паттерн Factory Method. Как и было обещано, на этот раз мы рассмотрим шаблон проектирования под названием Abstract Factory.
Абстрактная фабрика предоставляет интерфейс для создания целых семейств объектов без указания конкретных классов. Объекты каждого семейства должны быть логически связаны между собой.
Перед тем, как привести пример использования Фабрики на Java, рассмотрим небольшую диаграмму классов (с Paint я творю чудеса :)):
(more…)
January
Четвертое измерение
Posted in: Ваш досуг. Полезные советы | 13 Comments
Наше пространство является трехмерным и все что выходит за грани длины, ширины и высоты человек представить не в состоянии. Тем не менее, можно сделать некоторые выводы по поводу высших измерений.
Попробуем логически предположить, что же такое четвертое измерение (гиперкуб, гиперсфера).
(more…)
January
У вас не случалось такого: закончили проект, во время активного использования обраружили пару багов, исправили, заодно и пару функций добавили, а потом через некоторое время обнаружили, что код, с которым раньше не было проблем, нормально не работает?
По достоверным данным кол-во ошибок после изменения кода (будь-то добавление новой функциональности или же исправление багов) составляет около 50%. Для того, чтобы выявить эти ошибки, и нужно регрессионное тестирование (regression test).
Перечислю основные виды тестов регрессии в порядке их важности (обычно в таком порядке их и выполняют).
(more…)
January
Небольшой отчет
Posted in: Разное (uncategorized) | 4 Comments
Прошел ровно месяц с момента появления в Internet блога Javenue.
Спасибо огромное всем, кто так или иначе помог при его создании и развитии. Ну и конечно же хочется поблагодарить всех посетителей этого сайта: без вас этот ресурс ничего не стоит. Уверен, что многие люди нашли здесь именно то, что искали.
Но останавливаться на достигнутом я не собираюсь. С нетерпением жду ваших замечаний и предложений по поводу тематики и содержимого ресурса. Каждый комментарий будет рассмотрен и принят к сведению.
Желаю удачи всем, кого я знаю и не знаю.
(more…)
January
Анти-паттерн проектирования (Java): интерфейс для констант
Posted in: Java technologies, J2SE, Паттерны проектирования | 17 Comments
Ошибка, которая будет описана в данной статье, иногда привлекает Java-программистов своей многообещающей простой (я знаю, о чем говорю, так как сам ее допускал).
При программировании очень часто приходится использовать константы. Константа, описанная в некотором классе, иногда может понадобится и в другом классе.
Если описать константу в интерфейсе, назовем его символично Unacceptable, то затем можно декларировать любой класс как реализующий (implements) этот интерфейс (interface) и использовать нашу полезную константу:
(more…)
January
Операторы Inner Join и Outer (left, right, full) Join в SQL (Oracle)
Posted in: Базы данных, SQL, Oracle | 34 Comments
Ключевое слово join в SQL используется при построении select выражений. Инструкция Join позволяет объединить колонки из нескольких таблиц в одну. Объединение происходит временное и целостность таблиц не нарушается. Существует три типа join-выражений:
- inner join;
- outer join;
- cross join;
В свою очередь, outer join может быть left, right и full (слово outer обычно опускается).
В качестве примера (DBMS Oracle) создадим две простые таблицы и сконструируем для них SQL-выражения с использованием join.
(more…)
January
Тестирование с помощью JUnit (Test Case)
Posted in: Java open-source проекты, Тестирование кода, Java technologies, J2SE | 9 Comments
English version of this article you can find here.
Тестирование далеко не всегда бывает веселым и интересным. Этот процесс обычно достаточно продолжителен и полон монотонной работы. Большинство программистов пользуются стандартным выводом или же дебаггером для тестирования их классов.
В этой статье я опишу библиотеку JUnit, которая упрощает и во многом автоматизирует процесс написания тестов.
Для демонстрации основных возможностей JUnit Framework, напишем примитивный класс на языке Java и будем над ним издеваться. Этот класс будет иметь два метода - нахождение факториала и суммы двух чисел:
(more…)