Servletler - Paketleme

WEB-INF alt dizinini içeren web uygulaması yapısı, tüm Java web uygulamaları için standarttır ve servlet API spesifikasyonu ile belirtilir. Uygulamamın üst düzey dizin adı verildi. İşte bu dizin yapısının nasıl göründüğü -

/myapp
   /images
   /WEB-INF
      /classes
      /lib

WEB-INF alt dizini, uygulamanın web.xml adlı dağıtım tanımlayıcısını içerir. Tüm HTML dosyaları, benimapp olan en üst düzey dizinde tutulmalıdır . Yönetici kullanıcı için, ROOT dizinini ana dizin olarak bulacaksınız.

Paketlerde Servlet Oluşturma

WEB-INF / sınıflar dizini, paket adlarıyla eşleşen bir yapıda tüm sunucu uygulaması sınıflarını ve diğer sınıf dosyalarını içerir. Örneğin, tam nitelikli bir sınıf adınız varsacom.myorg.MyServlet, bu durumda bu sunucu uygulaması sınıfı aşağıdaki dizinde bulunmalıdır -

/myapp/WEB-INF/classes/com/myorg/MyServlet.class

Aşağıda com.myorg paket adıyla MyServlet sınıfı oluşturma örneği verilmiştir.

// Name your package
package com.myorg;  

// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
 
public class MyServlet extends HttpServlet {
 
   private String message;
 
   public void init() throws ServletException {
      // Do required initialization
      message = "Hello World";
   }
 
   public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      
      // Set response content type
      response.setContentType("text/html");
 
      // Actual logic goes here.
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
   }

   public void destroy() {
      // do nothing.
   }
}

Servletleri Paketler halinde Derleme

Pakette bulunan bir sınıfı derlemek için çok farklı bir şey yoktur. En basit yol, java dosyanızı tam nitelikli yolda tutmaktır, yukarıda belirtildiği gibi, sınıf com.myorg'da tutulacaktır. Bu dizini CLASSPATH'a da eklemeniz gerekir.

Ortamınızın doğru kurulduğunu varsayarsak, içeri girin <Tomcat-installationdirectory>/ webapps / ROOT / WEB-INF / classes dizini ve MyServlet.java dosyasını aşağıdaki gibi derleyin

$ javac MyServlet.java

Sunucu uygulaması diğer kitaplıklara bağlıysa, bu JAR dosyalarını CLASSPATH'ınıza da dahil etmeniz gerekir. Hello World programında başka bir kitaplık kullanmadığım için yalnızca servlet-api.jar JAR dosyasını ekledim.

Bu komut satırı, Sun Microsystems Java Yazılım Geliştirme Kiti (JDK) ile birlikte gelen yerleşik javac derleyicisini kullanır. Bu komutun düzgün çalışması için, PATH ortam değişkenine kullandığınız Java SDK'nın konumunu eklemeniz gerekir.

Her şey yolunda giderse, yukarıdaki derleme MyServlet.classdosya aynı dizinde. Sonraki bölüm, derlenmiş bir sunucu uygulamasının üretimde nasıl dağıtılacağını açıklayacaktır.

Paketli Servlet Dağıtımı

Varsayılan olarak, bir servlet uygulaması <Tomcat-installationdirectory> / webapps / ROOT yolunda bulunur ve sınıf dosyası <Tomcat-installationdirectory> / webapps / ROOT / WEB-INF / classes içinde bulunur.

Tam nitelikli bir sınıf adınız varsa com.myorg.MyServlet, bu durumda bu servlet sınıfı WEB-INF / classes / com / myorg / MyServlet.class içinde bulunmalıdır ve web.xml <Tomcat-installationdirectory> / webapps / ROOT / WEB-INF / konumunda bulunan dosya

<servlet>
   <servlet-name>MyServlet</servlet-name>
   <servlet-class>com.myorg.MyServlet</servlet-class>
</servlet>
 
<servlet-mapping>
   <servlet-name>MyServlet</servlet-name>
   <url-pattern>/MyServlet</url-pattern>
</servlet-mapping>

<web-app> ... </web-app> etiketlerinde oluşturulacak girişlerin üstünde web.xml dosyasında mevcuttur. Bu tabloda zaten mevcut olan çeşitli girişler olabilir, ancak boşverin.

Neredeyse bitti, şimdi <Tomcat-installationdirectory> \ bin \ startup.bat (Windows'ta) veya <Tomcat-installationdirectory> /bin/startup.sh (Linux / Solaris vb. Üzerinde) kullanarak tomcat sunucusunu başlatalım ve son olarak http://localhost:8080/MyServlettarayıcının adres kutusunda. Her şey yolunda giderse, aşağıdaki sonucu alırsınız -

Hello World