2012-05-19 5 views
0

Im очень ОЧЕНЬ новый для веб-разработки, и я пытаюсь сделать сервлет с java. Я выяснил, как настроить сервер apache tomcat. Теперь сервер имеет следующую структуру файла:Настройка сервлета на tomcat

 
tomcat6: 
     -work 
      -Catalina 
       -localhost 
         -_ 
      -catalina.policy 
     -webapps 
      -ROOT 
       -META-INF 
       -index.html 
     -shared 
      -classes 
     -server 
      -classes 
     -logs 
      -localhost.2012-05-19.log 
      -catalina.out 
      -catalina.2012-05-19.log 
     -conf 
      -policy.d 
       -lots of .policy files 
      -catalina 
       -localhost 
         -ROOT.xml 
      -web.xml 
      -tomcat-useres.xml 
      -server.xml 
      -logging.pproperties 
      -context.xml 
      -pcatalina.properties 
     -common 
      -classes 

я просто редактировал aouto сгенерированного сервлета в NetBeans, и в среде IDE он отлично работает, но Nom независимо от того, где я положил его на моем сервере Tomcat, я получаю 404, или просто пытается загрузить файл .class.

Куда я должен положить classto, чтобы он работал?

+0

woops, linebreaks не пинают так, как я хотел. Я надеюсь, что это все равно будет иметь какой-то смысл :) – user1291510

+0

Я не знаю, откуда у вас это дерево, но это не Tomcat 6. Нет 'общих' или' common' каталогов. Существует только 'lib'. –

+0

Похоже, в вышеупомянутом тексте есть ряд орфографических ошибок. (pcatalina.properties, tomcat-useres.xml) Являются ли эти точные отражения содержимого файловой системы? Как отмечает Майкл, это не дерево файлов Tomcat 6 - действительно ли Netbeans действительно ставит каталину.policy в tomcat/work? policy.d не является стандартным каталогом Tomcat. – Pidster

ответ

2

Вам необходимо создать файл WAR, а затем поместить warfile в каталог webapps.

+0

Как сделать ВОЙН? Может ли netbeans построить его? – user1291510

+1

Немного по поиску в Google. Есть тонны учебников, возможно, некоторые для netbeans вообще. – bmargulies

+0

Вам не нужно строить ВОЙН (хотя это, безусловно, более удобно). Вы можете просто поместить файлы в нужные места. – QuantumMechanic

0

Если вы вручную делать это без какого-либо IDE, то это структура

Apache Tomcat folder --> wep-app folder --> your_web_app_name --> WEB-INF,.html,.jsp 
                     | 
                     |--> classes 
                     | 
                     |--> lib 
                     | 
                     |--> web.xml (Description Descriptor) 
1

Вы должны сказать кот, что ваш веб-приложение имеет сервлеты, какие классы реализации сервлет, и путь, что URL сервлеты отображаются к. Это делается в WEB-INF/web.xml.

Прежде всего, необходимо определить сервлет web.xml:

<servlet> 
    <servlet-name>HelloWorldServlet</servlet-name> 
    <servlet-class>com.foo.myapp.servlets.HelloWorld</servlet-class> 
</servlet> 

Затем необходимо сопоставить сервлет (его servlet-name) к URL-путь, а также в web.xml:

<servlet-mapping> 
    <servlet-name>HelloWorldServlet</servlet-name> 
    <url-pattern>/HelloWorld</url-pattern> 
</servlet-mapping> 

Предполагая у вас есть tomcat, слушающий порт 8080, если вы переходите на

http://your.tomcat.host:8080/webappname/HelloWorld 

вы попадете в сервлет.

Отметьте, что HelloWorldServlet - произвольный текст. Это может быть что угодно и не обязательно должно быть связано с именем класса или URL-адресом (хотя для него полезно быть похожим на них). Важно то, что вы используете одну и ту же строку в теге servlet-name как в теге servlet, так и в теге servlet-mapping.

Чтобы написать сервлет, вам необходимо реализовать интерфейс Servlet. Однако вы очень редко делаете это напрямую. Вместо этого вы (чаще всего) расширяете HttpServlet и переопределяете один или несколько методов doXXX(). Если вы не пишете сервлет на основе HTTP, вы расширяете GenericServlet и переопределяете метод service(). Другие библиотеки за пределами API Servlet могут предоставлять другие базовые классы сервлетов, специфичные для протокола, которые вы можете расширить.

+1

Typo: должен быть not

+0

Также как будет реализован сам класс сервлета? Что он должен распространять и какие методы должны быть реализованы? –

Смежные вопросы