| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Вопрос о getServletConfig() |
| Автор: Looser 30.1.2006, 21:46 |
| Добрый день. Я только начал изучать j2ee Ситуация такая: Мне нужно вывести на страницу информацию о сервере. я делаю так: out.println(getServletConfig().getServletContext().getServerInfo()); я понимаю, что это можно сделать по-другому, но всё же... getServletConfig() возвращает null, и, ессно, выбрасывается NullPointerException.... Как же получить доступ к контексту? Спасибо за ответ |
| Автор: kkorsakoff 31.1.2006, 02:29 |
| Как вы вызываете ваш сервлет? Приведите урл пожалуйста. Если мне не изменяет память, то вызов в invoker-style не дает доступа к ServletConfig, т.к. его конфига фактически не существует. Вызов в Invoker-style - это http://www.myserver.com/servlet/... Необходимо прописать в web.xml мэппинги (урл-отображения) для вашего сервлета. Приведите содержимое web.xml тоже. |
| Автор: Looser 31.1.2006, 08:58 | ||||
фрагмент web.xml:
Вызываю через форму
|
| Автор: kkorsakoff 1.2.2006, 01:15 | ||
Не могу угадать поведение томкэта при одинаковом имени сервлета и его маппинга, попробуй хотя бы так:
<form> оставь ту же. По-крайней мере у меня больше вариантов нет, почему конфиг может == null. |
| Автор: onsh76 1.2.2006, 10:23 | ||||
По замыслу тех кто проектировал сервлеты, каждый сервлет - потомок класса GenericServlet (будь то HttpServet или еще какая-нить имплементация, ну скажем сервлет имплементирующий WAP протокол) - имеет доступ к обьектам: - servletContext (defined and implementation is provided by GenericServlet class) ; - servletConfig ( definition is provided by Servlet interface, implementaion is provided by GenericServlet class). Отвечаю на вопрос как получить доступ к контексту: Ниже два варианта как распечатать то, что Вам нужно:
Второй вариант как видите - это Ваш рабочий код, который прекрасно работает. Но он несколько длиннее первого. |
| Автор: Looser 1.2.2006, 10:41 |
| 2 kkorsakoff: исправил, как вы говорили, но по-прежнему getServletConfig() возвращает null. 2onsh76: Почему то мой "рабочий" код не "прекрасно" работает, а выбрасывает NullPointerException в строке out.println(getServletConfig().getServletContext().getServerInfo()); Вывел отдельно: out.println(getServletConfig()); - напечатал null... |
| Автор: onsh76 1.2.2006, 12:09 | ||
Какой сервак? Приведи код сервлета и web.xml. Плюс чего набираем в браузере. А то так долго гадать будем на кофейной гуще. Если вызывать сервлетконфиг в конструкторе твоего сервлета - то это рановато. ServletConfig доступен только после того как контейнер сделает вызов метода init() (или init(ServletConfig), более ранняя версия сервлет спекс.). |
| Автор: Looser 1.2.2006, 13:37 |
| Всё, понял... Проблема была в том, что eclipse создал метод init(ServletConfig config), а не init()... В этом случае config был равен null.. исправил на init() и всё норм... Всем спасибо... |
| Автор: onsh76 1.2.2006, 19:47 | ||
Бывает Рад был помочь... |