Bài giảng Lập trình Java 3 - Bài 8: Networking
Gửi email là hoạt động thường xuyên xảy ra của 1 ứng dụng. Có thể người dùng gửi cho 1 ai đó, hoặc có thể là thông báo của hệ thống
Để gửi email trong Java bạn cần 2 thư viện
• Mail.jar
• Activation.jar
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Lập trình Java 3 - Bài 8: Networking", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Lập trình Java 3 - Bài 8: Networking
Networking Bài 8: SOF203 - Lập trình Java 3 Bài 8: Networking Nội dung bài học Download tài nguyên mạng Gửi email thông qua gmail 2 Tài nguyên mạng Tài nguyên trên mạng (trang web, hình ảnh, video) có thể truy cập thông qua địa chỉ URL Lớp URL Java cung cấp lớp java.net.URL để có thể gửi/nhận dữ liệu với các URL đó. Protocol: http Host: abc.com Port: 80 Path: Xyz/page.do File: Page.do?x=5&y=7 Query: x=5&y=7 Reference: #xxx URL API Thông tin URL Protocol: http Host: abc.com Port: 80 Path: /xyz/page.jsp File: /xyz/page.jsp?x=5&y=7 Query: x=5&y=7 Ref: xxx Download từ Internet ByteArrayOutputStream buffer = new ByteArrayOutputStream(); URL url = new URL(""); InputStream is = url.openStream(); byte[] block = new byte[4*1024]; // 4KB while(true){ int n = is.read(block); if(n <= 0){ break; } buffer.write(block, 0, n); } is.close(); byte[] data = buffer.toByteArray(); buffer.close(); Chứa dữ liệu download Mở luồng dữ liệu đến tài nguyên Chỉ nên đọc 1 lần tối đa 4KB Dừng khi đã hết dữ liệu Tích lũy dữ liệu đọc được Lấy nội dung trang web Đề mô Tải và hiển thị trang web lên ô nội dung bên dưới Tải và lưu vào file được nhập từ JFileChooser Xử lý nút [Tải] ByteArrayOutputStream buffer = new ByteArrayOutputStream(); URL url = new URL(txtUrl.getText()); InputStream is = url.openStream(); byte[] block = new byte[4*1024]; // 4KB while(true){ int n = is.read(block); if(n <= 0){ break; } buffer.write(block, 0, n); } is.close(); txtNoiDung.setText(buffer.toString("utf-8")); buffer.close(); Xử lý nút [Lưu file] if(jFileChooser1.showSaveDialog(this) == JFileChooser.APPROVE_OPTION){ File file = jFileChooser1.getSelectedFile(); FileOutputStream fos = new FileOutputStream(file); URL url = new URL(txtUrl.getText()); InputStream is = url.openStream(); byte[] block = new byte[4*1024]; // 4KB while(true){ int n = is.read(block); if(n <= 0){ break; } fos.write(block, 0, n); } is.close(); fos.close(); } Gửi email Gửi email là hoạt động thường xuyên xảy ra của 1 ứng dụng. Có thể người dùng gửi cho 1 ai đó, hoặc có thể là thông báo của hệ thống Để gửi email trong Java bạn cần 2 thư viện • Mail.jar • Activation.jar Mail API Các phương thức được sử dụng của MimeMessage trong việc gửi email. Phương thức Mô tả setFrom(InternetAddress) Cung cấp địa chỉ email người gửi setReplyTo(InternetAddress[]) Cung cấp địa chỉ email người nhận phản hồi addRecipients(RecipientType, Address[]) Cung cấp danh sách địa chỉ email người cùng nhận setSubject(String) Cung cấp tiêu đề mail setContent(String, String) Cung cấp nội dung mail setSentDate(Date) Cung cấp ngày gửi mail Giải thuật gửi mail Transport Gửi mail MimeMessage Xây dựng mail: người nhận, người gửi, tiêu đề, nội dung Session Mở một session dựa vào cấu hình và authenticator ở trên Authenticator Cung cấp tài khoản kết nối mail server Properties Chuẩn bị thông số cấu hình Code gửi email Xem slide sau Code gửi email qua Gmail Gửi email có CC và BCC Để gửi mail cho nhiều người cùng nhận bạn chỉ cần bổ sung các email ấy vào CC hoặc BCC. Sự khác biệt giữa CC và BCC là CC là những email sẽ được người nhận nhìn thấy trên mail còn BCC thì không. Mã bổ sung email cùng nhận: Gửi mail có đính kèm file Queue mail Chi phí (CPU và bộ nhớ) dành cho gửi mail là rất cao. Đôi khi hệ thống phải thực hiện gửi nhiều email một lúc dẫn đến tài nguyên cạn kiệt dễ gây tê liệt hệ thống. Giải pháp khắc phục là tại queue nắm giữ các mail và có 1 thread chuyển trách gửi tuần tự từng email. Ap pl ic at io ns Thread MailSender Mails Queue MailSender Thread Xem slide sau MailSender Thread Sử dụng MailSender Thread Thay vì gọi Transport.send(mail) để gửi email thì sử dụng MailSender.queue(mail) để bổ sung email vào queue và sẽ được gửi bởi 1 Thread khác
File đính kèm:
- bai_giang_lap_trinh_java_3_bai_8_networking.pdf