Công nghệ Servlet và JSP là nền tảng của lập trình Java EE. Gần đây tôi đã viết khá nhiều bài về lập trình Servlet và JSP. Đây là bài tổng hợp các hướng dẫn về JSP Servlet và đường link liên kết đến toàn bộ các bài viết theo thứ tự.
Hướng dẫn về Servlet JSP
Hướng dẫn Java Web Application dành cho người mới bắt đầu
Đây là bài đầu tiên trong chuỗi hướng dẫn Java Web Application, giới thiệu các khái niệm cốt lõi của ứng dụng web và cách sử dụng Eclipse để tạo ứng dụng web đầu tiên. Bài viết đề cập chi tiết về web server, client, HTTP và HTML, URL, Web Container, cấu trúc thư mục Web Archive và cấu hình deployment descriptor. Bài viết cũng bao gồm ví dụ Servlet “Hello World”.
Hướng dẫn Java Servlet dành cho người mới bắt đầu
Hướng dẫn này trình bày chi tiết về Servlet và những lợi ích của nó so với CGI. Bài viết mô tả Servlet API cùng các interface và class chính. Chúng ta cũng sẽ tìm hiểu sơ lược về Servlet 3 annotations được sử dụng trong các bài hướng dẫn tiếp theo. Ngoài ra còn có nội dung về thuộc tính servlet và xây dựng dự án ví dụ Servlet Login.
Quản lý phiên làm việc trong Servlet
Bài viết giải thích về Session (phiên làm việc) và các cách quản lý session. Chúng ta học cách sử dụng Cookies và interface HttpSession
của Servlet API để duy trì session người dùng, cũng như kỹ thuật URL rewriting trong trường hợp client không hỗ trợ cookies.
Servlet Filter
Tìm hiểu về Servlet Filter và cách chúng ta có thể sử dụng nó để chặn các request và response, từ đó can thiệp và xử lý chúng trước khi tới Servlet hoặc trước khi trả về client.. Bài viết mô tả interface Filter, annotation @WebFilter
, cấu hình Filter trong web.xml và cung cấp ví dụ ghi log request của client và xác thực session bằng Filter.
Servlet Listener
Bài viết giới thiệu về Servlet Listener và lợi ích của nó. Chúng ta tìm hiểu interface Listener và các Event objects liên quan, kèm ví dụ minh họa cho ServletContextListener
, ServletContextAttributeListener
, HttpSessionListener
và ServletRequestListener
.
Cookies trong Servlet
Cookie được sử dụng rất nhiều trong giao tiếp giữa server và client. HttpSession trong Servlet API sử dụng cookie để quản lý phiên làm việc. Ở đây chúng ta sẽ tìm hiểu về lớp Cookie trong Servlet và cách dùng nó để thêm cookie vào response và lấy chi tiết cookie từ đối tượng request cùng với một chương trình minh họa.
Xử lý Exception trong Servlet
Bài viết đề cập đến cách sử dụng Exception Handler Servlets để tạo thông báo lỗi tùy chỉnh gửi về client khi xảy ra lỗi trong phương thức service
của servlet.
Ví dụ Upload và Download file trong Servlet
Tình huống upload và download file rất phổ biến trong các ứng dụng web. Bài viết này sẽ hướng dẫn bạn cách sử dụng Apache Commons FileUpload API để upload file từ hệ thống cục bộ lên server và cách dùng Servlet để download file đồng thời ẩn đi vị trí file thực tế với người dùng.
Upload file trong Servlet 3 với annotation MultipartConfig và interface Part
Servlet 3 đã bổ sung khả năng upload file mà không cần thư viện bên thứ ba. Bài viết này giới thiệu annotation @MultipartConfig
, interface Part
và các phương thức trong HttpServletRequest
để xử lý upload file lên server.
Kết nối cơ sở dữ liệu và tích hợp Log4j trong Servlet
Hầu hết ứng dụng web đều cần kết nối cơ sở dữ liệu và dùng Log4j để ghi log. Đây là bài viết chi tiết với ví dụ đầy đủ, hướng dẫn cách sử dụng Listener và thuộc tính servlet context để kết nối cơ sở dữ liệu và tích hợp Log4j.
Ví dụ Tomcat DataSource JNDI
Phần lớn ứng dụng web sử dụng cơ sở dữ liệu quan hệ và DataSource là cách được ưu tiên để lấy kết nối. Bài viết giải thích các cách cấu hình DataSource trong Tomcat và cách sử dụng trong ứng dụng web dựa trên Servlet.
Tích hợp Spring Security vào ứng dụng Servlet
Chúng ta có thể dùng module Spring Security để triển khai xác thực và phân quyền trong ứng dụng servlet. Hướng dẫn này trình bày cách thực hiện với ví dụ đơn giản.
Ví dụ Hibernate Servlet với DataSource
Hibernate là công cụ ORM phổ biến trong Java và có thể dễ dàng tích hợp vào ứng dụng Servlet. Hướng dẫn này cung cấp thông tin cơ bản về Hibernate và cách tích hợp vào ứng dụng web sử dụng Tomcat DataSource qua JNDI.
Async Servlet
Servlet 3 giới thiệu tính năng xử lý bất đồng bộ, giúp tăng thông lượng đối với các servlet chạy lâu. Chúng ta có thể chuyển việc xử lý sang luồng khác bằng async servlet. Hướng dẫn này trình bày cách triển khai với ví dụ minh họa.
Câu hỏi phỏng vấn Servlet
Tổng hợp 50 câu hỏi phỏng vấn Servlet với đáp án chi tiết giúp bạn chuẩn bị tốt cho các buổi phỏng vấn Java EE. Bạn nên đọc kỹ các hướng dẫn trước khi thử trả lời để kiểm tra mức độ hiểu biết của bản thân.
Hướng dẫn JSP
Hướng dẫn JSP cho người mới bắt đầu
Đây là bài viết đầu tiên trong chuỗi bài về JSP. Giới thiệu JSP và lợi ích so với Servlet, các interface trong JSP API, vòng đời JSP, chú thích trong JSP, các thành phần script như scriptlet, biểu thức, directive, khai báo, thuộc tính JSP, quá trình biên dịch JSP sang Servlet, kèm ví dụ minh họa. Đây là bài khởi đầu tốt cho người mới học JSP.
Đối tượng ngầm định trong JSP
JSP tạo ra sẵn 9 đối tượng khi khởi tạo phương thức service
, có thể sử dụng trực tiếp trong các scriptlet JSP. Bài viết trình bày chi tiết về các đối tượng ngầm định này và ví dụ sử dụng trong JSP.
Chỉ thị JSP
Chỉ thị JSP được dùng để cung cấp hướng dẫn cụ thể cho trình biên dịch JSP khi chuyển mã thành Servlet. Bài viết giải thích chi tiết về chỉ thị page
và include
cùng các thuộc tính của chúng. Chỉ thị taglib
dùng cho JSTL hoặc tag tùy chỉnh sẽ được giải thích trong các bài sau.
Xử lý ngoại lệ trong JSP
Chúng ta có thể tạo trang lỗi tùy chỉnh trong JSP để xử lý các ngoại lệ và gửi phản hồi phù hợp cho client. Bài viết hướng dẫn cấu hình trang lỗi trong deployment descriptor và ví dụ minh họa.
Hướng dẫn JSP EL
JSP Specs 2.0 giới thiệu Expression Language (EL) cho phép truy cập thuộc tính và tham số dễ dàng qua cú pháp giống HTML. Bài viết trình bày các đối tượng EL ngầm định, toán tử EL, độ ưu tiên, từ khóa đặc biệt và ví dụ sử dụng.
JSP Action Tags
JSP cung cấp một số action tag chuẩn để thực hiện các tác vụ như làm việc với JavaBean, nhúng tài nguyên khác, chuyển tiếp yêu cầu… Bài viết cung cấp thông tin về các phần tử action và ví dụ sử dụng JSP Bean, Forward và Include.
Hướng dẫn JSTL JSP Standard Tag Library (JSTL) là thư viện thẻ chuẩn cung cấp các thẻ để điều khiển hành vi của trang JSP, lặp và các câu lệnh điều kiện, thẻ xử lý quốc tế hóa và thẻ SQL. Bài viết này trình bày chi tiết về các loại thẻ khác nhau trong JSTL. Bạn cũng sẽ được tìm hiểu về JSTL Core Tags và cách sử dụng chúng qua ví dụ minh họa.
JSP Custom Tags
Đôi khi JSP EL, Action Tags và JSTL không đáp ứng đủ nhu cầu, khiến chúng ta dễ bị cuốn vào việc viết mã Java trực tiếp trong các phần tử script của JSP. May mắn là JSP có khả năng mở rộng và chúng ta có thể tự tạo các thẻ tùy chỉnh để sử dụng trong trang JSP. Bài viết này hướng dẫn các bước tạo custom tag trong JSP, cách cấu hình và sử dụng chúng trong trang JSP kèm theo ví dụ minh họa.
Câu hỏi phỏng vấn JSP và câu trả lời
Bài viết này tổng hợp nhiều câu hỏi phỏng vấn liên quan đến JSP kèm lời giải thích chi tiết, phù hợp cho cả người mới bắt đầu lẫn lập trình viên có kinh nghiệm. Bạn có thể dành chút thời gian đọc qua để tham khảo và ôn luyện.
Đó là toàn bộ hướng dẫn về lập trình Java web với Servlet và JSP. Tôi sẽ tiếp tục bổ sung các bài viết về các tình huống lập trình thực tế với JSP như bảo mật Servlet, thẻ JSTL… nên bạn hãy lưu lại để tiện tham khảo sau này.