Đây là một câu hỏi mà mình gặp khá nhiều bạn hỏi. Thực tế là không có browser nào hiểu được file JSP. Khi gặp file JSP thì browser sẽ coi đó là một file cần được download xuống vì nó không biết cách để hiển thị file đó.
Thế tại sao dùng browser truy cập đến các file jsp vẫn lấy được nội dung về. Thực ra cái mà browser lấy về khi đó không phải là JSP mà là một trang HTML. JSP là file chứa các thành phần động, các thành phần đó cần được server biên dịch để trả về ở dạng HTML. Trường hợp mình nói ở trên khi browser không hiển thị mà tải JSP về thì có lẽ do server không dịch gì cả.
Quá trình biên dịch này diễn ra như sau:
- Request đến trang JSP tới server
- Server được cài đặt một JSP container như apache tomcat chả hạn sẽ thực hiện biên dịch JSP ra byte code ở dạng các file class. Bạn có thể thấy các file class này trong thư mục work của tomcat.
- Các byte code sau đó được diễn dịch để trả về trang HTML (mọi thành phần động đều được diễn dịch hết thành mã html tương ứng) cho client.
apache tomcat mình nhắc đến trong bài là một web container chứ không phải apache server - đây lại là một http server thuần túy.
Cơ bản thì cả hai đều hiểu và điều tác được http request/http response nhưng khả năng điều tác của http server cao hơn một web container. Bù lại, apache tomcat lại hiểu và biên dịch được file jsp còn apache server thì không thể. Chính vì sự khác biệt này mà các kỹ sư thường tích hợp apache tomcat vào apache server để tận dụng ưu điểm của cả hai.
Không có nhận xét nào:
Đăng nhận xét