สรุปสั้นๆ: Servlet คือโปรแกรม Java ที่รันบน Web Server ทำหน้าที่เป็น Middle Layer ระหว่าง HTTP Client Request กับ Database/Application บน Server ส่วน JSP คือเอกสารข้อความที่ประกอบด้วย 2 ส่วน: Static Text (กำหนดไว้ล่วงหน้า) และ Dynamic Text (สร้างขึ้นหลัง Server ตอบสนอง)
ตารางเปรียบเทียบ Servlet vs JSP
| ลำดับ | หัวข้อ | Servlet | JSP |
|---|---|---|---|
| 1 | การ Implement | พัฒนาด้วยภาษา Java ทั้งหมด | เขียนเป็น HTML เป็นหลัก สามารถฝัง Java Code ได้ แต่ต้องใช้ JSTL หรือ Expression Language |
| 2 | บทบาทใน MVC | ทำหน้าที่ Controller: รับ Request ประมวลผล ส่ง Response กลับ | ทำหน้าที่ View: แสดงผล Response ที่ Servlet ส่งมา |
| 3 | ประเภท Request | รองรับทุก Protocol Request | รองรับเฉพาะ HTTP Request |
| 4 | Session Management | Default ปิด ต้อง Enable เอง | Default เปิดอยู่แล้ว |
| 5 | Performance | เร็วกว่า JSP | ช้ากว่า Servlet เพราะต้อง Translate JSP → Java → Compile ก่อน |
| 6 | การแก้ไขโค้ด | ยุ่งยาก ต้อง Reload, Recompile, Restart Server | ง่าย กด Refresh แก้ไขจะมีผลทันที |
ตัวอย่าง Servlet
JavaTester.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class JavaTester 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(message);
}
}
ผลลัพธ์
Hello World
สรุป: ใช้ Servlet สำหรับ Business Logic/Controller ใช้ JSP สำหรับ Presentation/View แยกหน้าที่ชัดเจน ตาม Pattern MVC