Евгений Матюшкин (skipy_ru) wrote,
Евгений Матюшкин
skipy_ru

◎ Продолжаю собирать пожелания

Теперь уже в этой теме прошу писать всех, кто хотел бы что-то обсудить – статьи на сайте или же просто какие-то интересные/актуальные вопросы. По результатам сбора пожеланий опять-таки будут созданы темы для обсуждения. Или же статьи, что тоже реально.

Я был бы рад, если бы анонимные комментарии и вопросы были подписаны – проще отвечать.
Tags: пожелания
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 118 comments
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →
Здравствуйте!
Подскажите, пожалуйста, как можно из JavaScript добавить параметр (к url) или аттрибут к request и session?
Заранее спасибо! Алексей
Добрый день, Алексей!

Я не совсем понял задачу. К какому url хочется добавить параметр?

Вообще JavaScript работает на стороне клиента, так что сессию он не модифицирует. А вот запрос - легко. Как правило, это делается так - создается hidden input, и в него пишется значение, которое надо передать на сервер. Можно даже модифицировать DOM и самостоятельно добавить нужное поле.

И к URL тоже можно добавить что угодно. Берется document.location.href, модифицируется и присваивается обратно. Присвоение вызовет переход по ссылке.
Евгений, здравствуйте еще раз!
Можно ли в JSP-страничке получить доступ к значению checked поля чек-бокс?
На маленьком JavaScript это делается легко. А на нашей могучей Java?.....
Дополните, пожалуйста, 2 последние строчки кода:

КОД:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<input ... >Чек-бокс





<% out.println("Аттрибут чек-бокс (scriptlet): ???"); %>


ВЫВОД:
Аттрибут чек-бокс (JavaScript): false
Аттрибут чек-бокс (JSTL): ???
Аттрибут чек-бокс (scriptlet): ???

С уважением,
Алексей
Добрый день, Алексей!

Объясняю популярно. Значение checkbox-а известно на стороне клиента, после того, как от сервера получена страница. А "наша могучая Java" работает на сервере - она генерирует эту самую страницу и отсылает ее клиенту. Эти два факта надо связывать для получения ответа на вопрос?

P.S. Если же Вы имеете в виду получение значения уже после отправки запроса обратно на сервер - тут проще. Это значение приходит в качестве параметра в request-е, но (!) ТОЛЬКО если checkbox выбран. Если не выбран - параметра не будет. Это достаточный признак для определения состояния checkbox-а.
Есвгений, добрый день. Интересует меня вопрос по поводу protected конструкторов, зачем они вообще нужны? Как они работают, я понимаю. Т.е. что видны на уровне пакета и доступны потомкам. Но, вот, в каких случаях их применять, пока не совсем понимаю. Может это побочный анахронизм языка: :) Ведь в jаva на сколько я понимаю много оверхеда и лишнего для совместимости и т.д. Ещё плюс к этому вопросу, мне не понятно, почему в стандартной библиотеке java практически во всех абстрактных классах используются protected конструкторы? Ведь, по моему для абстрактных классов абсолютно нет разницы между protected и public конструкторами. Или есть какойто нюанс ? Спасибо .
protected-конструктор нужен для ситуаций, когда его вызывать может только наследник. Ну, например, там проводится не вся необходимая инициализация объекта, часть оставляется наследнику. Допустим, в базовом классе есть логика, основывающаяся на каком-либо классе (java.lang.Class), который знает только наследник. Причем этот класс должен тоже удовлетворять определенным условиям. В общем, может быть достаточно сложная ситуация.

Давать создавать такой объект пользователю, который не знает всех тонкостей - опасно. А тот, кто от класса унаследуется, с большой вероятностью изучит все его тонкости.

Для абстрактных классов разницы между protected и public конструкторами я с ходу не придумаю.

А вообще есть правило - необходимо уровень доступа делать минимально возможным, позволяющем решить задачу. Можно использовать protected вместо public - значит, нужно делать именно так. Чем меньше уровень доступа, там меньше возможно ошибок и побочных эффектов.
Евгений, строки которые находятся в string pool убираются сборщиком мусора, когда на них нет ссылок ?

Спасибо.
Да, убираются.

Стоит также помнить, что пул находится в области PermGen. И большой объем пула может вызвать OutOfMemory: PermGen space
Доброго дня, Евгений!
Большое спасибо Вам за отличные статьи, все в самом деле лаконично и по существу. Сам перешел на JAVA недавно, до этого плотненько сидел на Delphi. Первое впечатление было - "Что здесь вообще происходит???". Сейчас же, все более вникая в основные концепции ООП JAVA понимаю, что ООП-ООП рознь, и не перестаю удивляться элегантности JAVA. Спасибо добрым людям, что посоветовали Ваш сайт, с, в самом деле, очень нужной информацией.
Конечно же, пока трудности возникают с компоновкой в GUI, формошлепству бой, так сказать, но к сожалению в статье "О менеджерах раскладки" я просто на просто теряюсь. Но время есть, ИМХО трудно ломать устои сложившиеся годами.
Большое Вам спасибо за труды, очень интересно читать. С уважением, Андрей.

JAAS

Anonymous

June 20 2011, 09:19:40 UTC 8 years ago

Евгений, добрый день! Работали ли вы с JAAS в связке с Tomcat? Очень нужна помощь, желательно рабочий пример.
Нет, к сожалению, не работал. Не только с tomcat - вообще.
Вы главное это... Писать не переставайте :)
Тут уж как получится... Все-таки есть работа. :)
Привет,

Есть вопрос по поводу nginx. Поднимаю его на Windows 7 (ноут на котором работаю) и через минут 5 работы или около 50-100 запросов сервер успешно виснет.
Читал, что у него есть проблемы с версией под виндовс. Есть ли опыт поднимания nginx на Unix платформах и есть ли там какие-то траблы подобного рода?
Добрый день!

Собственного опыта работы с nginx у меня нет. Есть только общее соображение - он работает в промышленном режиме на таком колоссальном количестве серверов (преимущественно под *NIX), что вряд ли у него есть реальные проблемы.

P.S. А под Windows7 я бы вообще ничего не тестировал. Это не серверная ОС, к тому же глючная в сетевой части. 2000, 2003, 2008R2 - если очень хочется именно Win.

Deleted comment

Добрый день!

Вы меня озадачили порядком, я о такой особенности не подозревал. Полез в код, там действительно фиксируется потоки, где происходят чтение и запись. Теперь по пунктам.

а) http://docs.oracle.com/javase/6/docs/api/java/io/PipedInputStream.html, http://docs.oracle.com/javase/6/docs/api/java/io/PipedOutputStream.html:

A pipe is said to be broken if a thread that was providing data bytes to the connected piped output stream is no longer alive.



The pipe is said to be broken if a thread that was reading data bytes from the connected piped input stream is no longer alive.



Это цитаты. Из документации :). Если поток, работающий с другой стороны, недоступен (проверяется через isAlive), то pipe считается поломанным. Возможно, и не совсем очевидно, но написано.

б) Надо читать документацию. Навскидку - я такого не видел. Мне вообще сложно представить, зачем такая привязка была сделана.

в) Честно сказать, я pipe-ы не использовал за 15 лет ни разу. Соответственно, задача отслеживания жизненного цикла не возникала. Я вообще слабо представляю, зачем в одном приложении нужно использовать pipe при наличии ссылок.

г) про блокировку в документации тоже написано - лучше оба конца в одном потоке не использовать, во избежание deadlock-а.

P.S. А если не секрет - что Вы такое делаете, что Вам pipe-ы понадобились?

Deleted comment

Deleted comment

Добрый день.
Мелкое замечание по Ликбезу.
"Я не знаю, откуда в некоторых книгах взялась конструкция java ru.skipy.myproject.Main, без указания classpath."
По-моему класс может находится и относительно текущего каталога. Только вот в каком порядке это происходит не совсем понятно.
Здравствуйте. У меня вопрос по поводу сочетания swing и awt. Когда я помещаю JPanel и Panel на Frame, то JPanel при изменении размера онка мигает,а Panel не мигает.Так же при помещении JButton на Panel, эта кнопка становится видна только после наведения на её курсора мышки. Так можно ли использовать swing и awt вместе,или мжет я что то делаю не так.
Причина по которой я хочу использовать Frame вместо JFrame в том, что при изменении при изменении размера JFrame его фон медленно отрисовывеатся,и это очень не красиво.
Видите ли в чем дело... Все swing-компоненты с точки зрения операционной системы не существуют. Для них нет peer-компонент. А AWT-компоненты - существуют. В норме AWT-компонента у Вас одна - окно (frame), на нем всё и рисуется. Если добавить еще несколько awt-компонент - они будут располагаться поверх окна и, соответственно, поверх Ваших нарисованных swing-компонент. Плюс там разные принципы и последовательности отрисовки. В общем, смешивать их не рекомендуется, проблем море, пользы я лично не вижу.

Вы лучше опишите более подробно проблему с медленной отрисовкой фона. Что значит "медленно", как надо? Как делаете? И лучше, наверное, в каком-нибудь форуме, например, в www.javatalks.ru. Сюда ссылку киньте, чтобы я обратил внимание.
добрый день! Прочитал много ваших статей - очень понятно и внятно рассказываете, спасибо!

пожелание на статью - networking. Http, tcp, i/o, sockets и пр.. Большая важная и интересная многим тема, по которой мало собранной в одном месте понятной документации на русском.

Добрый день, случайно попал на ваш сайт на статью про пакеты, понятно написано, большое спасибо за статью. Читал раздел про книги. Я только начинаю знакомиться с языком, опыт прграмирования практически нулевой, посоветуйте чем подкрепить теорию почерпнутую с книги "Java Полное Руководство" Герберт Шилдт 8-е изд.. Заранее очень благодарен за ответ !!!
Теорию можно подкрепить только практикой. Увы, других вариантов не изобрели. :)
Здравствуйте. Прочитал вашу статью о логгировании http://www.skipy.ru/useful/logging.html (http://www.skipy.ru/useful/logging.html).
Конкретно вопрос по уровням логгера: "Установка логгеру определенного уровня означает следующее – сообщения, выводимые с этим или более высоким уровнем, попадут в лог."
Задал уровень WARN, в результате в логе не вижу INFO. Может все - таки у вас неверно указана иерархия?
Ну так всё правильно. Более высокий уровень - это ERROR и FATAL. И если Вы задали уровень WARN - INFO Вы и не должны видеть.

Подумайте сами, просто логически. Уровень задается для того, чтобы отсечь неинтересные сообщения. Вот выставили Вы WARN - и начинаете получать всё вплоть до DEBUG, а ERROR нет? В этом есть какой-нибудь смысл?
С Днём рождения!!!
Спасибо за интересные и полезные статьи!
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →