Pakej Servlet


Struktur aplikasi web yang melibatkan subdirektori WEB-INF adalah standard untuk semua aplikasi web Java dan ditentukan oleh spesifikasi API Servlet. Memandangkan direktori peringkat atas bernama myapp, struktur direktori kelihatan seperti ini:

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

WEB-INF Subdirektori mengandungi deskriptor penggunaan untuk aplikasi, bernama web.xml. Semua fail HTML terletak di bawah direktori peringkat teratas myapp. Bagi pengguna pentadbir, anda akan mendapati bahawa direktori ROOT ialah direktori induk myApp.

Buat Servlet dalam pakej

Direktori WEB-INF/kelas mengandungi semua kelas Servlet dan fail kelas lain Struktur direktori tempat fail kelas berada sepadan dengan nama pakejnya. Contohnya, jika anda mempunyai nama kelas yang layak sepenuhnya com.myorg.MyServlet, maka kelas Servlet ini mesti terletak dalam direktori berikut:

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

Contoh berikut mencipta pakej bernama Kelas MyServlet com.myorg.

// 为包命名
package com.myorg;  

// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
 
public class MyServlet 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()
  {
      // 什么也不做
  }
}

Menyusun Servlet dalam pakej

Menyusun kelas dalam pakej tidak jauh berbeza daripada menyusun kelas lain. Cara paling mudah ialah menyimpan fail java anda dengan laluan yang layak sepenuhnya, seperti kelas yang dinyatakan di atas, akan disimpan dalam com.myorg. Anda juga perlu menambah direktori pada CLASSPATH.

Dengan mengandaikan persekitaran anda disediakan dengan betul, pergi ke direktori <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes dan susun MyServlet.java seperti yang ditunjukkan di bawah :

$ javac MyServlet.java

Jika Servlet bergantung pada perpustakaan lain, maka anda juga mesti merujuk fail JAR tersebut dalam CLASSPATH. Di sini saya hanya merujuk fail JAR servlet-api.jar kerana saya tidak menggunakan mana-mana perpustakaan lain dalam program Hello World.

Baris arahan ini menggunakan pengkompil javac terbina dalam yang disertakan dengan Kit Pembangunan Perisian Java Sun Microsystems (JDK, nama penuh: Java Software Development Kit). Kit Pembangunan Perisian Java (JDK) Microsystems. Untuk arahan ini berfungsi dengan betul, anda mesti memasukkan lokasi Java SDK yang anda gunakan dalam pembolehubah persekitaran PATH anda.

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

Pembungkusan dan penggunaan servlet

Secara lalai, aplikasi Servlet terletak di bawah laluan <Tomcat-installation-directory>/webapps/ROOT, dan fail kelas diletakkan dalam <Tomcat -direktori-pemasangan> ;/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, anda perlukan Cipta entri berikut dalam fail web.xml yang terletak di <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/:

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

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

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/MyServlet dalam bar alamat penyemak imbas. Jika semuanya berjalan lancar, anda akan melihat keputusan berikut:

Hello World