| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > servlet |
| Автор: desarrollo 14.11.2006, 18:29 | ||||
| Помогите разобраться. Проблема с сервлетами. Работаю на JBuilder 2006. Не смог создать с помощью InterliJ IDEA 5.1
В IDEA не смог понять, как сделать web.xml. Понятно, что надо просто создать файл в редакторе и поместить его в WEB-INF. А что туда писать? Или какие есть средства в IDEA, чтобы создавался автоматически данный файлик? В Builder'е проблем нет, он сам всё создаёт. И когда даже не зная как там всё это создаётся, скопировал просто web.xml которую сгенерировал билдер и поместил в IDEA, прокомпилировал, но он ничего не выдаёт. В чём проблема? -------------------------------------------------------------------------------- Когда я дошёл до тега SERVLET он почему то не определяется, пишет что нет такого тега.
В книге написано что надо использовать Java Web Server, чтобы работал этот тег. Но я не нашёл где можно посмотреть какой сервер используется в Builder'e. Прочитал доки, всё что с этим связано, но ничего толкового для решения этой проблемы не нашёл. Помогите в этих вопросах. |
| Автор: powerOn 14.11.2006, 19:32 |
| Модератор: Название темы должно отражать ее суть! И используйте кнопку КОД, для оформления исходников. |
| Автор: _and 14.11.2006, 19:53 |
| desarrollo, советую всё-таки взять какую-нить другую книжку и почитать про Java вообще и сервлеты |
| Автор: desarrollo 14.11.2006, 20:30 | ||
Почему тема не отражает сути вопроса? Всё критится возле темы сервлетов вот так и назвал тему |
| Автор: batigoal 14.11.2006, 23:10 |
| Сказать по правде, я впервые слышу о теге SERVLET. Откуда это? |
| Автор: Sherst 15.11.2006, 03:41 | ||||
| Краткое теоретическое введение: Сервлет является классом Java, который может быть загружен и выполнен специальным web-сервером, называемым контейнер сервлетов. В настоящее время существует большое множество таких контейнеров (Tomcat, Java Web Server и др). Итак, для начала необходимо скачать контейнер сервлетов ( я рекомендую Tomcat http://tomcat.apache.org/download-55.cgi) Когда будет идти первый запрос на сервлет, то сразу произойдет его загрузка контейнером сервлета. Далее сервлету передается запрос клента, сервлет его обрабатывает и возвращает результат контейнеру сервлетов, который уже в свою очередь отсылает ответ пользователю. После этого сервлет остается в памяти ожидая другие запросы, и будет выгружен лишь при нехватке памяти. Этим сервлеты превзошли на то время технологию CGI в которой каждый запрос порождал новый процесс. Итак, после установки контейнера сервлетов, приступим непосредственно к созданию самого сервлета. Можно выделить 5 шагов: 1.Написание кода сервлета:
2. Компиляция кода. 3. Создание дескриптора развертывания (web-xml):
4. Запуск контейнера сервлетов. 5. Вызов сервлета из браузера. У меня IDEA 4.5 File - > New Project -> select module type (Web Module) -> Configure (Tomcat) ; Справа появляется меню с тремя вкладками: (Packages, J2EE, Project). Выбираем J2EE -> WebModules -> Наш проект (на нем нажимаем правой кнопкой) -> New -> Servlet. И повторяем все пункты описанные мною выше. PS: не понятно чем JBuilder не устроил, я сам только им пользуюсь. ИМХО там все удобно и легко создается, кроме того есть встроенный Tomcat. |
| Автор: Kangaroo 15.11.2006, 04:20 | ||||
Самому стало интересно
|
| Автор: desarrollo 17.11.2006, 10:34 | ||
Проблема в том, что не выпадает Tomcat. Его надо добавить с помощью кнопочки add и выбрать Tomcat Server. Выпадает модальное окно для ввода Tomcat home и Tomcat base directory. Что я только туда не пихал, и Tomcat.jar из JAVA-HOME/jre/plug-ins/tomcat/lib, прописывал уже путь к отдельно установленному Tomcat C:\Program Files\Apache Software Foundation\Tomcat 5.5\server\lib. Пишет Could not find directory '{0}' Что такое? Тормозит всю работу с сервлетами. Не устривает меня JBuilder, потому что надо всё уметь настраивать ручками, просто использую для начала, так немного легче. |
| Автор: Sherst 17.11.2006, 11:14 |
| А такой путь: C:\Program Files\Apache Software Foundation\Tomcat 5.5 Добавлено @ 11:16 Проверь чтоб такой путь существовал |
| Автор: desarrollo 18.11.2006, 08:25 |
| Подсоединил томкат, получилось Сделал всё как Вы написали. Пошагово. Сначала забил код, откомпилил его с помощью Ctrl-Shift-F9, поместил в папочку WEB-INF/web.xml тот код. Запкстил опосля Tomcat C:\Program Files\Apache Software Foundation\Tomcat 5.5\bin\tomcat5.exe. Теперь как эту прогу запустить в броузере? Я прописал http://localhost:8080/servlet/FirstServlet/ попробовал http://localhost:8080/FirstServlet/ - не работает Кстати дальше я не понял, где это "Справа появляется меню с тремя вкладками: (Packages, J2EE, Project). Выбираем J2EE -> WebModules -> Наш проект (на нем нажимаем правой кнопкой) -> New -> Servlet.", где я ни искал, не смог найти эту менюшку с вкладками (Packages, J2EE, Project) |
| Автор: batigoal 18.11.2006, 10:42 |
| А тыт точно сделал ? |
| Автор: desarrollo 18.11.2006, 14:03 | ||
Да я сделал именно так |
| Автор: Sherst 19.11.2006, 02:18 |
| Ок, тогда детализирую: После установки Tomcat можно просмотреть струтуру файлов и папок которые находятся в нашем случае здесь C:\Program Files\Apache Software Foundation\Tomcat 5.5\ (т.н. домашний каталог CATALINA_HOME) Среди множества папок нас интересует папка с названием webapps. Так вот, сюда можно кидать свои web-приложения. Сделаем все пошагово: 1) Внутри webapps создадим папку с произвольным названием, н-р MyServlet 2) Внутри MyServlet создадим папку WEB-INF; 3) Внутри WEB-INF создадим папку classes 4) Копируем в папку classes откомпилированный сервлет FirstServlet.class 5) Копируем в папку WEB-INF файл web.xml 6) Запускаем Tomcat и проверяем его на работоспособность в адресной строке браузера вводим: http://localhost:8080/ должна появиться стартовая страница Tomcata. 7) Если все прошло нормально то вводим строку http://localhost:8080/MyServlet/servlet/FirstServlet |
| Автор: Sherst 19.11.2006, 02:43 |
| Еще один более короткий путь: делаем шаг 1, затем заходим в каталог нашего проекта на IntelijIDEA и копируем содержимое папки exploded в папку MyServlet. |
| Автор: desarrollo 20.11.2006, 00:15 |
| Пасиба, у меня всё получилось |