Bài giảng Lập trình Java 3 - Bài 8: Networking

Bài giảng 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

pdf 22 trang phuongnguyen 5340
Bạn đang xem 20 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

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:

  • pdfbai_giang_lap_trinh_java_3_bai_8_networking.pdf