Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

ความแตกต่างระหว่าง Servlet และ JSP


สรุปสั้นๆ: 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