Thứ Năm, 28 tháng 8, 2014

Servlet Life Cycle

1. Tạo các servlet class
2. Tạo object
3. Gọi hàm init khỏi tạo
4. Hàm process Request sẽ xử lí doGet() hoặc doPost()
5. Hàm destroy sẽ giải phóng tài nguyên.

Giao thức http

Http (HyperText Transfer Protocol) là giao thức truyền tải siêu văn bản (chữ, ảnh, video) ra đời cùng www.
Http được xây dựng dựa trên TCP/IP.
Http có 2 đặc điểm quan trọng:
  • Stateless: (không lưu lại trạng thái của client) mỗi lệnh được xử lý độc lập.
  • Connectionless: khi client gửi yêu cầu lên server, server xử lí xong trả lại kết quả và client với server không còn mỗi quan hệ nữa.


Java web technologties

Java Servle: là công nghệ tạo trang web động. Làm việc với nó khó khăn.
JSP ( JavaServer Pages): được xây dựng dựa trên Java Servle tạo giao diện web dễ dàng hơn Java Servle cho phép sử dụng html và xml, custom tag.
JavaServer Pages Standard Tag Library (JSTL) dựa trên JSP.
Java Server Faces: giúp tạo giao diện dễ dàng trực quan hơn, code sạch sẽ hơn.

Mô hình client - server

Mô hình Client - Server: Client (Máy khách) sẽ gửi yêu cầu nào đó đến Server (Máy chủ) như: hiển thị thông tin, đăng kí tài khoản, ... Server sẽ xử lý thông tin đó và trả về client.
Các ví dụ như: 
Web client/server: Người dùng sử dụng web browser yêu cầu đến máy chủ (như xem báo, vào các trang cộng đồng mạng,...)
Client/server: các chương trình chat, lưu dữ liệu trực tuyến.
Tại sao nó được sử dụng: giao thức TCP/IP rất phổ biến, mô hình này có thể chạy trên nhiều nền tảng.
Khi nào nó được sử dụng: các trò chơi trục tuyến, báo điện tử,...
So sánh với một mô hình khác:
Client - ServerPeer to peer
Client gửi yêu cầu đến server và server phản hồi, trong quan hệ này vai trò của client và server không thay đổi.Một máy tính A gửi yêu cầu đến một máy tính B, máy tính B phản hồi lại máy tính A thì A là client và B là Server. Nhưng sau đó B lại gửi yêu cầu đến A thì A là server và b là client. Vai trò của máy tính trong mô hình này không cố định.

Học thế nào?

Trước đây, tôi đọc lý thuyết rồi xem trong video, tự code lại. Khi làm một bài tập lớn, tôi phân tích nó rồi bắt tay vào code (áp dụng những bài tập nhỏ hơn), phần nào gặp khó khăn sẽ lên mạng tìm ví dụ để học theo. Ngoài ra, lý thuyết có nhiều tài liệu, sách, mỗi phần cũng cảm thấy nó khá lớn, không biết bắt đầu từ đâu. Code cũng có nhiều kiểu, nhiều hướng, không thể phân tích thế nào là tốt hơn nên dùng trong trường hợp nào. Cũng khá ít thảo luận các vấn đề mình gặp phải.

=> Sau đó tôi thấy rằng lý thuyết không hỗ trợ nhiều cho các ví dụ, nên đã luyện code nhiều hơn, nhưng sau đó cũng không thể code giỏi hơn và tôi cũng không biết mình gặp vấn đề ở chỗ nào?

Sau đó tôi được giới thiệu mô hình học tập đảo ngược :
+ Trước khi lên lớp: tìm hiểu và khoanh vùng phần chưa rõ.
+ Trên lớp: thảo luận phần chưa rõ.
+ Sau buổi học: tư duy lại phần chưa hiểu.

Chu trình học tập Kolb:
Lý thuyết -> Thực hành -> Có kinh nghiệm lập trình -> Rút ra vấn đề của mình -> Biến những gì đã làm thành kiến thức của mình và làm bài tập mới, đọc lý thuyết mới, thực hành nó,... Vòng lặp lặp lại nhiều lần trình độ sẽ tăng lên (mô hình Dreyfus).
Đây có vẻ là mô hình khoa học hơn cách học cũ của tôi, cũng có vẻ khó khăn khi mới bắt đầu nhưng mong là nó sẽ có hiệu quả!

1. Tìm hiểu từng mục tiêu của khóa học này như thế nào?
2. Lợi thế và khó khăn khi áp dụng phương pháp này.

3. Hoạt động quan trọng nhất của phương pháp này?
Khoanh vùng phần chưa rõ, thảo luận,
4. Ý kiến của bạn về phương pháp học này so với cách học cũ.