MỤC LỤC
Thực thi truy vấn SQL trong đối tƣợng PreparedStatement này, mà phải là một lệnh DML (lệnh thao tác dữ liệu) trong SQL nhƣ INSERT, UPDATE hoặc DELETE, hoặc một lệnh SQL mà không trả về bất cứ cái gì, chẳng hạn nhƣ một lệnh DDL (nhƣ CREATE, ALTER, …). Xây dựng các phương thức thực hiện kết nối với cơ sở dữ liệu và thực hiện các phương thức thao tác (thêm mới, cập nhập, sửa, xóa…) với bản ghi trong bảng cơ sở dữ liệu.
Nội dung phần này sẽ tập trung trình bày các kỹ thuật trình bày các đối tƣợng giao diện (conponent) trên frame theo các ý đồ thiết kế khác nhau bằng cách dùng bộ quản lí trình bày (Layout Manager).
• Nếu muốn trong một vùng chứa đƣợc nhiều đối tƣợng, ta có thể gắn vào m i vùng một Panel. Sau đó trong panel, ta chọn cách trình bày riêng cho panel và gắn các đối tƣợng vào panel.
• insets: Xác định khoảng cách giữa các cell theo bốn hướng: Trên, dưới, trái, phải. • weightx/weighty: Định khoảng cách lớn ra tương đối giữa các đối tượng với nhau.
Những tương tác thường gặp như: di chuyển, nhấn chuột, nhấn một nút nhấn, chọn một MenuItem trong hệ thống thực đơn, nhập dữ liệu trong một ô văn bản, đóng cửa sổ ứng dụng, … Khi có một tương tác xảy ra thì một sự kiện được gởi đến chương trình. Bộ lắng nghe sự kiện (event listener): là một đối tƣợng của một lớp hiện thực một hay nhiều interface của gói java.awt.event hay java.swing.event (đối với những component trong thƣ viện JFC). Khi đƣợc thông báo, bộ lắng nghe nhận sự kiện và xử lý. Nguồn phát sinh sự kiện phải cung cấp những phương thức để đăng ký hoặc hủy b một bộ lắng nghe. Nguồn phát sinh sự kiện luôn phải gắn với một bộ lắng nghe, và nó sẽ thông báo với bộ lắng nghe đó khi có sự kiện phát sinh đó. 2) Những interfaces lắng nghe của gói java.awt.event.
Thường thì, Servlet được tạo khi một người dùng lần đầu triệu hồi một URL tương ứng với Servlet đó, nhưng ta cũng có thể xác định rằng Servlet này được tải khi Server đƣợc khởi động lần đầu. Khi một người sử dụng triệu hồi một Servlet, một đối tượng đơn của Servlet được tạo, với m i yêu cầu từ người dùng, là kết quả trong một thread mới, mà được thao tác tới doGet hoặc doPost một cách thích hợp.
File web.xml cung cấp thông tin triển khai và cấu hình cho các thành phần Web bao gồm một ứng dụng Web. Giải thích thêm thì thẻ <welcome-file-list> dùng để liệt kê các file khi một ứng dụng web chạy lên, những file nằm trong danh sách thẻ <welcome-file-list> đƣợc ƣu tiên gọi nếu có.
Khi một trình duyệt yêu cầu một trang web, nó gửi nhiều thông tin tới Web Server, mà không thể đƣợc đọc một cách trực tiếp bởi vì thông tin này chuyển động nhƣ là một phần của Header trong HTTP Request. Khi chúng ta có một Enumeration, chúng ta có thể lặp Enumeration này theo phương thức chuẩn: sử dụng phương thức hasMoreElements() để xác định khi nào dừng và sử dụng phương thức nextElement() để nhận tên m i parameter.
Như đ bàn luận trong chương trước, khi một Web Server phản hồi một HTTP Request tới trình duyệt, phản hồi đặc trưng bao gồm một dòng Status, một số trường Header, một dòng trống, và tài liệu. Trong đó, publics nghĩa là tài liệu có thể đƣợc cache, private nghĩa là tài liệu dành cho một người sử dụng và chỉ có thể được lưu giữ riêng (không được chia sẻ) và no-cache nghĩa là tài liệu không bao giờ đƣợc cache.
Dòng Status gồm phiên bản HTTP (trong ví dụ là HTTP/1.1), một status code (trong ví dụ là 200), và một thông báo rất ngắn tương ứng với Status code đó (trong ví dụ là OK). Phương thức này gửi một Status code (thường là 404) cùng với một thông báo ngắn mà tự động đƣợc định dạng bên trong một tài liệu HTML và đƣợc gửi tới Client.
Chuyển tiếp (Forward): Khi một yêu cầu (request) của trình duyệt gửi tới một Servlet, nó có thể chuyển tiếp yêu cầu tới một trang khác (hoặc một servlet khác). Chuyển hướng (Redirect): Khi một yêu cầu (request) từ phía người dùng tới một Servlet (Trang A), servlet này có thể chuyển yêu cầu này tới một trang khác (Trang B), và kết thúc nhiệm vụ của nó.
Phương thức này trả về độ tuổi tối đa của cookie, được chỉ định bằng giây, Theo mặc định, -1 cho biết cookie sẽ tồn tại cho đến khi trình duyệt tắt máy. Nếu ta không chỉ định đường d n, cookie sẽ được trả về cho tất cả các URL trong cùng thư mục với trang hiện tại cũng nhƣ tất cả các thƣ mục con.
Phương thức này thiết lập giá trị boolean cho biết liệu cookie chỉ nên được gửi qua các kết nối đƣợc mật m (tức là SSL). Phương thức này trả về comment mô tả mục đích của cookie này, hoặc không hợp lệ nếu cookie không có comment.
Khi một Servlet ném một Exception, thì Web container tìm kiếm các cấu hình (Configuration) trong web.xml mà sử dụng phần tử loại exception này để kết nối với loại exception đ ném. Bây giờ sử dụng một Servlet mà nêu ra một exception hoặc một loại l i URL, nó sẽ kích hoạt Web Container để gọ ErrorHandler servlet và hiển thị một thông báo thích hợp nhƣ đƣợc lập trình.
- So với Server-Side Includes (SSI): SSI chỉ dành cho các thể đơn giản, không dành cho các chương trình "thực" mà sử dụng Form Data, tạo kết nối Database. - So với JavaScript: JavaScript có thể tạo HTML động trên Client nhƣng lại tương tác khó khan với Web Server để thực hiện các tác vụ phức tạp như truy cập Database và xử lý hình ảnh, …. - Với Static HTML: Tất nhiên, HTML thông thường không thể chứa thông tin động. Cấu trúc JSP. Web Server cần một JSP engine ví dụ: Container) để xử lý các JSP page. Vòng đời (Life Cycle) trong JSP. Chìa khóa để tìm hiểu tính năng tầm thấp của JSP là hiểu vòng đời của nó. Vòng đời của JSP có thể đƣợc định nghĩa nhƣ là toàn bộ tiến trình từ khi tạo ra đến khi hủy nó, tương tự như vòng đời của một Servlet, nhưng thêm một bước để biên dịch một JSP thành Servlet. Sau đây là các giai đoạn trong vòng đời của của một JSP:. Bốn giai đoạn chủ yếu trong vòng đời của JSP là tương tự như vòng đời của Servlet và chúng nhƣ sau:. Khi môt trình duyệt yêu cầu một JSP, đầu tiên JSP engine kiểm tra để biết có hay không nó cần biên dịch trang này. Nếu trang chƣa đƣợc biên dịch, hoặc nếu JSP đ đƣợc sửa đổi từ lần sửa đổi cuối cùng, thì JSP engine biên dịch trang này. Tiến trình biên dịch gồm 3 bước:. 2) Biên dịch JSP thành một Servlet 3) Biên dịch Servlet đó. Phương thức _jspService() của một JSP được triệu hồi một lần cho m i yêu cầu và nó chịu trách nhiệm tạo Response cho Request đó và phương thức này cũng chịu trách nhiệm tạo các phản hồi tới tất cả 7 phương thức của HTTP, ví dụ: GET, POST, DELETE.
Khi một trình duyệt yêu cầu một Webpage, nó gửi nhiều thông tin tới Web server, mà không thể đƣợc đọc một cách trực tiếp bởi vì thông tin này là một phần trong Header của HTTP request.
Nếu phản hồi của bạn bao gồm một Status code đặc biệt và một tài liệu, đảm bảo bạn đ gọi setStatus trươc khi thực sự trả về bất kỳ nội dung vào với PrintWriter. Để làm quen với các phương thức trên, bạn thử viết các chương trình sử dụng các phương thức được liệt kê ở trên theo cách thức tương tự trong ví dụ này.
Để sử dụng Standard Taglib từ Jakarta Taglib, đơn giản bạn chỉ cần sao chép các JAR file trong thƣ mục 'lib' tới thƣ mục webapps\ROOT\WEB-INF\lib trong ứng dụng của bạn. Cùng với <jsp:useBean..>, bạn có thể sử dụng <jsp:getProperty/> để truy cập các phương thức get và <jsp:setProperty/> action để truy cập các phương thức set.
Bạn có thể bao một message trong phần thân của Custom Tags nhƣ khi bạn đ thấy với các thẻ chuẩn. Trong trường hợp này, kết quả từ sự triệu hồi, đầu tiên được bắt vào trong một StringWriter trước khi được ghi tới JspWriter mà liên kết với thẻ đó.