Servletler - Örnekler

Servletler, HTTP isteklerine hizmet eden ve javax.servlet.Servletarayüz. Web uygulaması geliştiricileri tipik olarak, Servlet arabirimini uygulayan ve özellikle HTTP isteklerini işlemek için tasarlanmış soyut bir sınıf olan javax.servlet.http.HttpServlet'i genişleten servletler yazar.

Basit kod

Aşağıda, Hello World'ü göstermek için bir sunucu uygulaması örneğinin örnek kaynak kodu yapısı verilmiştir -

// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// Extend HttpServlet class
public class HelloWorld 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.
   }
}

Bir Servlet Derleme

Yukarıda gösterilen kodla HelloWorld.java adında bir dosya oluşturalım. Bu dosyayı C: \ ServletDevel (Windows'ta) veya / usr / ServletDevel (Unix'te) konumuna yerleştirin. Devam etmeden önce bu yol konumu CLASSPATH'a eklenmelidir.

Ortamınızın doğru kurulduğunu varsayarsak, içeri girin ServletDevel HelloWorld.java dosyasını aşağıdaki gibi derleyin ve derleyin -

$ javac HelloWorld.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 HelloWorld.classdosya aynı dizinde. Sonraki bölüm, derlenmiş bir sunucu uygulamasının üretimde nasıl dağıtılacağını açıklayacaktır.

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.

Şimdilik HelloWorld.class'ı <Tomcat-installationdirectory> / webapps / ROOT / WEB-INF / classes içine kopyalayalım ve aşağıdaki girişleri oluşturalım web.xml <Tomcat-installation-directory> / webapps / ROOT / WEB-INF / konumunda bulunan dosya

<servlet>
   <servlet-name>HelloWorld</servlet-name>
   <servlet-class>HelloWorld</servlet-class>
</servlet>

<servlet-mapping>
   <servlet-name>HelloWorld</servlet-name>
   <url-pattern>/HelloWorld</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 tamamladınız, şimdi <Tomcat-installationdirectory> \ bin \ startup.bat (Windows'ta) veya <Tomcat-installationdirectory> /bin/startup.sh (Linux / Solaris vb.) Kullanarak tomcat sunucusunu başlatalım ve son olarak şunu yazın: http://localhost:8080/HelloWorldtarayıcının adres kutusunda. Her şey yolunda giderse, aşağıdaki sonucu alırsınız