Contoh Servlet


Servlet ialah kelas Java yang menyediakan permintaan HTTP dan melaksanakan antara muka javax.servlet.Servlet. Pembangun aplikasi web biasanya menulis servlet yang memanjangkan javax.servlet.http.HttpServlet, dan kelas abstrak yang melaksanakan antara muka Servlet secara khusus untuk mengendalikan permintaan HTTP.

Kod contoh Hello World

Berikut ialah contoh kod sumber Servlet untuk mengeluarkan Hello World:

// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// 扩展 HttpServlet 类
public class HelloWorld extends HttpServlet {
 
  private String message;

  public void init() throws ServletException
  {
      // 执行必需的初始化
      message = "Hello World";
  }

  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 设置响应内容类型
      response.setContentType("text/html");

      // 实际的逻辑是在这里
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
  }
  
  public void destroy()
  {
      // 什么也不做
  }
}

Kompilasi Servlet

Mari kita tulis di atas kod dalam fail HelloWorld.java, letakkan fail ini dalam C:ServletDevel (pada Windows) atau /usr/ServletDevel (pada UNIX Anda juga perlu menambah direktori ini pada CLASSPATH).

Dengan mengandaikan persekitaran anda telah disediakan dengan betul, pergi ke direktori ServletDevel dan susun HelloWorld.java seperti berikut:

$ javac HelloWorld.java

Jika Servlet bergantung pada mana-mana perpustakaan lain, Anda mesti memasukkan fail JAR tersebut dalam CLASSPATH. Di sini, saya hanya memasukkan fail JAR servlet-api.jar memandangkan saya tidak menggunakan mana-mana perpustakaan lain dalam program Hello World.

Baris arahan ini menggunakan pengkompil javac terbina dalam Kit Pembangunan Perisian Java (JDK) Sun Microsystems. Untuk arahan ini berfungsi dengan betul, anda mesti mempunyai lokasi Java SDK yang digunakan dalam pembolehubah persekitaran PATH.

Jika semuanya berjalan lancar, kompilasi di atas akan menjana fail HelloWorld.class dalam direktori yang sama. Bahagian seterusnya menerangkan cara servlet yang disusun digunakan dalam pengeluaran.

Penggunaan Servlet

Secara lalai, aplikasi Servlet terletak di bawah laluan <Tomcat-installation-directory>/webapps/ROOT, dan fail kelas diletakkan dalam <Tomcat-installation -direktori> /webapps/ROOT/WEB-INF/classes.

Jika anda mempunyai nama kelas yang layak sepenuhnya com.myorg.MyServlet, maka kelas Servlet ini mesti terletak di WEB-INF/classes/com/myorg/MyServlet.class.

Sekarang, mari salin HelloWorld.class ke <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes dan letakkannya dalam <Tomcat-installation-directory>/webapps/ Cipta yang berikut entri dalam fail web.xml ROOT/WEB-INF/:

    <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>

Entri di atas perlu dibuat dalam <web-app> dalam fail web.xml. .</web-app> Mungkin sudah terdapat pelbagai entri yang tersedia dalam fail ini, tetapi tidak kisah.

Pada ketika ini, anda pada dasarnya telah selesai, sekarang mari gunakan <Tomcat-installation-directory>binstartup.bat (pada Windows) atau <Tomcat-installation-directory>/bin/startup sh (. pada Linux/Solaris, dsb.) mulakan pelayan tomcat, dan akhirnya masukkan http://localhost:8080/HelloWorld dalam bar alamat penyemak imbas. Jika semuanya berjalan lancar, anda akan melihat hasil berikut:

servlet-example.jpg