Friday 10 August 2012

Учебное пособие Java и Tomcat 6




По этой инструкции напишим программу которая запускается на сервере Tomcat!

У вас должны быть предворительно установлены:
JDK 6
Ant
Eclipse

1) Скачайте Tomcat
          - Зайдите в google, наберите: “tomcat download”, нажмите http://tomcat.apache.org/.
          - Загрузим 6-ой, в меню слева.
          - Под “Binary distributions”, Под “Core” нажмите на zip.
          - сохраните в папке скажем “C:\temp” (в целях крации temp).

2) Откройте temp и затем архив, для проверки. Вылажите всё в “C” или ещё куда нибудь. У вас должна появится папка “apache-tomcat-6.0.29” в целях крации “TOMCAT_HOME”.

3) Запустим сервер! Откройте “TOMCAT_HOME\bin”, запустите “startup.bat”. Должно появится окно - applet с журнализацией. Как только появится запись “INFO: Server startup in 1027 ms”, запишите в браузере: http://localhost:8080/. Вы должны увидеть: If you're seeing this page via a web browser, it means you've setup Tomcat successfully. Congratulations!

4) Изменим конфигурацию что-бы консоль был доступен. Откройте папку TOMCAT_HOME\conf затем файл tomcat-users.xml добавьте последующие две строки:

cfg 1
<role rolename="manager"/>
<user username="tomcat" password="tomcat" roles="manager"/>
Опробуйте линки Status и Tomcat Manager слева. Остановите сервев, закрыв окно с журнализацией.

5) Добавим Tomcat в eclipse. Откройте eclipse, сделайте новый workspace ( “tomcatTutorialWS”) или пользуясь тем который у вас есть.  Откройте Java EE perspective, в “Servers” табе, нажмите правой кнопкой от мышки new à server.  Выберете  Apache Tomcat 6, нажмите “next”, нажмите browse затем выберете  TOMCAT_HOME и нажмите ok, затем next, и finish. Двойным нажатием кликнете на сервер который появился в servers, затем где Server Location, выберете “Use Tomcat installation”, где Deploy path кликнете Browse затем выберете “TOMCAT_HOME\webapps” и нажмите ok. Теперь в Timeouts установите 1000 для Start и Stop (по умолчанию времяни для запуска сервера не достаточно и eclipse выбрасывает ошибку). Нажмите CTRL + S что-бы сохранить конфигурацию.
Запустите tomcat где servers правым нажатием мышкой à start. В Project Explorer появится проэкт Servers. Правым нажатием на проэкт, выберете new à folder. Нажмите “Advanced” снизу, выберете link to alternative location, нажмите browse выберете TOMCAT_HOME\conf нажмите ok. Нажмите Finish. Слева под проэктом Servers вы должны увидеть папку conf. Вам может быть снова придётся изменить tomcat-users.xml в проэкте Servers если ваши изменения стёрлись.

С установкой сервера в eclipse, мы закончили. Перейдём к програмке.


Апликация

1) Создадим маленькую WEB application с servlet-ом.

2) Java project в eclipse.
          - Откройте Java perspective.
          - кликните правой в package explorer, new à Java Project.
- Назовите проэкт tomcatWebApp (или как угодно), нажмите next, затем finish.
- Кликниие правой на проэкт, new à folder, в “Folder Name”, напишите lib, нажмите finish.
- Скопируйте все библиотеки(lib – файлы с окончанием “jar” или просто джары переводится как банка) из TOMCAT_HOME\lib в проэкт\lib что в eclipse.
- Добавим все jars в classpath проэкта. Кликните правой на проэкт, выберете “Properties”. Выберете Java Build Path, нажмите на “libraries” таб справо, нажмите на “Add Jars” кнопку справо. Кликните на ваш проэкт, выберете lib, подчеркните там все jars, нажмите ok, и ещё раз ok на экране Properties.
- Мы создадим апникацию WAR, там должна быть папка WEB-INF в которой должен быть файл web.xml.
- В корне проэнта создадим папку resources, внутри неё создадим папку WEB-INF.
- Вместо того что бы писать web.xml с нуля, скопируем файл из примеров находящиъся в “TOMCAT_HOME\webapps\examples\WEB-INF” итак копируем web.xml. Вставьте файл в следующее место в проэкте “project\resources\WEB-INF\”.
3) Изменим этот web.xml в eclipse
          - Кликните два раза на web.xml.
          - Изменим его таким образом:
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   version="2.5">

    <description>
      Test Tomcat
    </description>
   
    <display-name>Tomcat Test</display-name>
   
    <filter>
        <filter-name>Time Filter</filter-name>
        <filter-class>com.test.tomcat.filters.TimeFilter</filter-class>
    </filter>

    <listener>
        <listener-class>com.test.tomcat.listeners.MainListener</listener-class>
    </listener>

    <!-- Define servlets that are included in the example application -->
    <servlet>
      <servlet-name>TomcatTestServlet</servlet-name>
      <servlet-class>com.test.tomcat.servlets.TomcatTestServlet</servlet-class>
    </servlet>
   
    <servlet-mapping>
        <servlet-name>TomcatTestServlet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

</web-app>

4) Создадим пакиджы и классы.
- В проэкте кликните правой на src и выберете New à package. В “Name” напишите: “com.test.tomcat.filters”. Нажмите finish. Сделайте тоже самое для “com.test.tomcat.listeners” и “com.test.tomcat.servlets”.
- Затем кликните правой на “com.test.tomcat.servlets” пакидж, выберете new à Class. Напишите “TomcatTestServlet”. Нажмите finish. Сделайте то же самое в остальных пакиджах (создайте другие классы относительно своих пакиджей), смотрите web.xml выше. Сервлет мы уже сделали, практически.

5) Пишим код!
          - Откроем сервлет, сделаем что-бы он extend HTTPServlet. Кликните на Source сверху и выберете Override/Implement methods. Выберете doGet и doPost, нажмите ok. Сделайте doGet, следующим образом:

protected void doGet(HttpServletRequest req, HttpServletResponse resp)
              throws ServletException, IOException {
         
          resp.setContentType("text/html");
        PrintWriter out = resp.getWriter();

        out.println("<html>");
        out.println("<head>");

         String title = "Testing Tomcat";

         out.println("<title>" + title + "</title>");
        out.println("</head>");
        out.println("<body bgcolor=\"white\">");

        out.println("</body>");
        out.println("</html>");
     }

Сохраните файл. Сделайте listener и filter вот так:

public class MainListener implements ServletContextListener {

     @Override
     public void contextDestroyed(ServletContextEvent ctx) {
          System.out.println("Do nothing");
         
     }

     @Override
     public void contextInitialized(ServletContextEvent ctx) {
         
          System.out.println("Do nothing");
         
     }

}
Now here is the Filter

public class TimeFilter implements Filter {

     @Override
     public void destroy() {
          // TODO Auto-generated method stub
         
     }

     @Override
     public void doFilter(ServletRequest arg0, ServletResponse arg1,
              FilterChain arg2) throws IOException, ServletException {
          // TODO Auto-generated method stub
         
     }

     @Override
     public void init(FilterConfig arg0) throws ServletException {
          // TODO Auto-generated method stub
         
     }

}
6) Build файл. Нам нужно написать build файл для того что-бы скомпилировать, запаковать апликацию по стандарту WAR и затем скопировать её в папку “TOMCAT_HOME\webapps”.
- Кникните правой на проэкт и выберете new à File, в “File Name” напишите “build.xml”. Нажмите Finish. Новый файл с муравьём появится в проэкте. Откройте его и напишите в нём следующее.

<?xml version="1.0" encoding="UTF-8"?>
<project name="Test Tomcat" default="deploy" basedir=".">
    <description>
            Tomcat Test
    </description>

      <path id="lib">
                  <fileset dir="lib" includes="*.jar"/>
      </path>
     
    <!-- =================================
          target: default             
         ================================= -->
    <target name="deploy" depends="" description="compile, package and deploy application">
       
      <!-- compile -->
      <mkdir dir="./resources/WEB-INF/classes/"/>
     
      <javac classpathref="lib" srcdir="src" destdir="./resources/WEB-INF/classes/"/>
     
      <!-- deploy -->
     
      <mkdir dir="C:/apache-tomcat-6.0.29/webapps/tomcatTest" />
     
   
      <copy todir="C:/apache-tomcat-6.0.29/webapps/tomcatTest/">
            <fileset  dir="./resources"/>
      </copy>
     
      <delete dir="./resources/WEB-INF/classes/"/>
     
     
    </target>


</project>

Затем кликните правой на build файд, выберете Run As à Ant Build. Затем запустите Tomcat. Когда он заведётся, в браузере набирите http://localhost:8080/tomcatTest/. Вы должны увидеть “Testing Tomcat”.

Готово!         

No comments:

Post a Comment