středa 2. listopadu 2005

Minitutoriál: Eclipse, Tomcat a vývoj JSP a Servletu

Hodně často v diskusních skupinách javy zaznívá otázka, jak vyvíjet JSP a Servlety v IDE Eclipse. IDE Eclipse nemá přímou vestavěnou podporu pro JSP, Servlety nebo nasazení (deploying) do prostředí servletového kontejneru. K tomuto účelu je zapotřebí použít některý z plug-inu.

Protože jsem se rozhodl napsat tento příspěvek pro začínající vývojáře, použijeme plug-in Sysdeo Eclipse Tomcat Launcher plugin. To předpokládá, že je již nainstalovaný servletový kontejner Tomcat.

Konfigurace Sysdeo Eclipse Tomcat Launcher pluginu

Po nainstalování Sysdeo Eclipse Tomcat Launcher pluginu je potřeba jej nakonfigurovat.

Window >> Preferences >> Tomcat


Plná velikost (cca. 16KB)

  • Tomcat version - vyberte verzi nainstalovaného Tomcatu
  • Tomcat home - vyberte adresář Tomcatu

Window >> Preferences >> Tomcat >> Tomcat Manager App


Plná velikost (cca. 16KB)

Tomcat Manager App je správcovská webová aplikace, která umožňuje administraci aplikací, které na Tomcatu běží. Například je pomocí ní možné reloadovat jednotlivé aplikace bez nutnosti restartu celého Tomcatu.

Pokud používáte Tocmat 5.x je ManagerApp url ve tvaru http://server:port/manager. Zvolte si ManagerApp username a ManagerApp username a klikněte na tlačítko Add user to tomcat-users.xml.

Nový projekt

Nejdříve musíme vytvořit nový projekt a k tomu použijeme projektového wizarda, který přibyl po instalaci Sysdeo Eclipse Tomcat Launcher pluginu.

File >> New Project >> Java >> Tomcat Project

Zvolíme jméno projektu, případně adresář kam chceme projekt uložit.

Context name představuje kontextové jméno aplikace v rámci kontejneru. Kontextové jméno odpovídá kontextové části URL. Příklad: pokud tam stejně jako já zapíšete hodnotu test, bude URL vždy začínat http://server:port/test/*.

Tímto máme projekt připravený. Nyní si vytvoříme jednu testovací JSP stránku index.jsp, kterou umístíme přímo v rootu projektu.

 
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html;  
charset=UTF-8">
  <title>Hello world</title>
 </head>
 <body>
   Hello world
 </body>
</html>

A jeden servlet, který umístíme do WEB-INF/src/test.

 
package test;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet {
    protected void doGet(HttpServletRequest req, HttpServletResponse  
res) throws ServletException, IOException {
        res.getWriter().print("<html><body><p>Hello servlet world</p></body></html>");
    }
}
 

Pro namapování servletu na konkrétní URL vytvoříme soubor web.xml, který umístíme do adresáře WEB-INF.

 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web  
Application 
2.3//EN' 'http://java.sun.com/dtd/web-app_2_3.dtd'>
<web-app>
    <servlet> 
   <servlet-name>HelloServlet</servlet-name>
   <servlet-class>test.HelloServlet</servlet-class> 
   <load-on-startup>1</load-on-startup>
    </servlet> 
    <servlet-mapping>
   <servlet-name>HelloServlet</servlet-name>
   <url-pattern>/helloservlet</url-pattern>
    </servlet-mapping>
</web-app>
 

Nyní je vše připraveno, nemusíme dělat žádný deploy aplikace. Stačí pouze nastartovat Tomcat. Můžeme to udělat např. z toolbaru IDE, kde máme tři nové ikonky pro ovládání "kocoura".

Po spuštění, mělo by být doprovázeno výpisy do konzole v IDE, otestujeme funkčnost v prohlížeči zadáním URL http://localhost:8080/test/index.jsp a http://localhost:8080/test/helloservlet.

Několik užitečných funkcí nalezneme v kontextové nabídce, když klikneme pravým tlačítkem na projekt a zvolíme Tomcat project. Tou nejužitečnější bude volba reload context, kterou použijeme v případě změny v zdrojovém kódu (netýká se JSP ty jsou rekompilovány automaticky).

Sysdeo Eclipse Tomcat Launcher plugin pouští Tomcat v debug módu, což znamená, že můžete debugovat tak jak jste z Eclipse zvyklí. Funguje i hot code replace. Plugin můžeme v některých případech použít i pro projekt, který nebyl původně vytvořen jako Tomcat Project viz project properties >> Tomcat.

Download testovacího projektu

Užitečné odkazy v češtině