Chúng ta đã quá quen thuộc với Servlet, đã tìm hiểu và thực hành với Servlet. Bây giờ chúng ta chuyển qua tìm hiểu về JSP...
Vậy JSP là gì? Nó có những chức năng gì mà Servlet không có?...
JSP (Java Server Pages) tạm dịch là "Bộ tiền xử lý văn lệnh Java" - là một công nghệ Java cho phép các nhà phát triển tạo nội dung HTML, XML hay một số định dạng khác của trang web một cách năng động, trong khi hồi âm yêu cầu của trình khách. Công nghệ này cho phép người ta nhúng mã Java và một số hành động xử lý đã được định trước (pre-defined actions) vào trong nội dung tĩnh của trang.
Cú pháp của JSP cho thêm các thẻ XML mới, gọi là JSP actions (hành động JSP). Những JSP actions này được dùng để khởi động chức năng sẵn có, là những chức năng đã được xây dựng trước. Cộng thêm vào đó, công nghệ còn cho phép chúng ta tạo ra các thư viện thẻ JSP (JSP tag libraries), là những cái đóng vai trò vào việc mở rộng các thẻ HTML hay XML tiêu chuẩn. Thư viện thẻ (Tag libraries) là phương pháp mở rộng khả năng của một máy chủ web trong khi những mở rộng đó không phụ thuộc vào hệ nền (về cả cấu trúc máy cũng như hệ điều hành được dùng). Trước khi hiển thị ra trình duyệt, tập tin JSP phải được biên dịch thành Servlet, dùng bộ biên dịch JSP (JSP compiler). JSP compiler có thể tạo Servlet thành mã nguồn Java trước, rồi biên dịch mã nguồn ra tập tin ".class" dùng bộ biên dịch Java, hoặc có thể trực tiếp tạo mã byte code cho Servlet từ trang JSP.
Khi chúng ta muốn làm giao diện Web bằng cách "ngồi code" mà dùng Servlet là một cách rất phức tạp, thì khi đó người ta tìm cách để tạo giao diện Web một cách nhanh chóng và dễ dàng hơn đó là code bằng JSP. JSP sẽ cho giao diện Web đầy đủ tính năng hơn...
Đi vào tìm hiểu sâu về JSP thì chúng ta thấy cấu trúc của JSP giống với cấu trúc của một trang HTML, vì đều có thẻ "Root". Không thể thiếu ở một chương tình code là "Comment". Muốn comment trong JSP thì ta sẽ dùng "<!- abc -->" hoặc "<%---%>".
Một đặc điểm rất quan trọng trong JSP là nó cho phép sử dụng "Taglib". Những Taglib này cho phép chúng ta tag ví dụ và làm mọi việc đơn giản hơn bằng thẻ. Cũng như các đối tượng trong Java chúng ta muốn dùng Taglib thì phải khai báo nó. VD: <jsp:forward>, <jsp:include>, hay thẻ gán thuộc tính cho Java Bean, khởi tạo Java Bean...
Chủ Nhật, 14 tháng 9, 2014
Thứ Sáu, 12 tháng 9, 2014
Filter (Bộ lọc)
Hôm nay chúng ta sẽ tìm hiểu về công cụ "Lọc" Filter...
Vậy Filter là gì? Tại sao phải cần Filter? Filter hoạt động như thế nào? Và tìm hiểu thư viện của Filter...
Đầu tiên, Filter là một công cụ hoạt động như một giao diện giữa Client và các tài nguyên Web như: Sevlets, JSP, HTML... Khi đó Filter nằm ở giữa Client và các tài nguyên này. Và Filter lọc để làm gì?
Lọc để đảm bảo và kiểm tra xem người đang truy xuất vào có đúng không để ghi "log" lại, hoặc chuyển đổi dữ liệu(hình ảnh, nén dữ liệu).
Ví dụ: 1 Client đang đăng nhập vào Server Web, ta dùng Filter ở đây. Nếu Client là 1 tài khoản đã đăng ký thì Filter sẽ chuyển Client vào trong để Client sử dụng các tài nguyên trong Web, còn nếu Client này chưa đăng ký tài khoản thì Filter sẽ chuyển Client này vào phần đăng ký...
Vậy Filter là gì? Tại sao phải cần Filter? Filter hoạt động như thế nào? Và tìm hiểu thư viện của Filter...
Đầu tiên, Filter là một công cụ hoạt động như một giao diện giữa Client và các tài nguyên Web như: Sevlets, JSP, HTML... Khi đó Filter nằm ở giữa Client và các tài nguyên này. Và Filter lọc để làm gì?
Lọc để đảm bảo và kiểm tra xem người đang truy xuất vào có đúng không để ghi "log" lại, hoặc chuyển đổi dữ liệu(hình ảnh, nén dữ liệu).
Ví dụ: 1 Client đang đăng nhập vào Server Web, ta dùng Filter ở đây. Nếu Client là 1 tài khoản đã đăng ký thì Filter sẽ chuyển Client vào trong để Client sử dụng các tài nguyên trong Web, còn nếu Client này chưa đăng ký tài khoản thì Filter sẽ chuyển Client này vào phần đăng ký...
Thứ Sáu, 29 tháng 8, 2014
Server Life Cycles
Một chu kỳ sống servlet có thể được định nghĩa là toàn bộ quá trình từ sáng tạo của nó đến sự hủy diệt.
- Servlet được khởi tạo bằng cách gọi method Init().
Method init() được thiết kế để được gọi chỉ một lần. Nó được gọi khi Servlet đầu tiên được tạo ra, và không được gọi thêm cho mỗi yêu cầu của người sử dụng. Method init() tạo ra hoặc tải một số dữ liệu sẽ được sử dụng trong suốt cuộc đời của Servlet. Servlet thường được tạo ra khi người sử dụng đầu tiên gọi một URL tương ứng với Servlet, hoặc khi Server bắt đầu hoạt động.
Ex:
public void init() throws ServletException
{
}
- Gọi các method Servlet Service() để xử lý yêu cầu của Client.
Method Service() là phương pháp chính để thực hiện các công việc thực tế. Servlet Container (Web Server) gọi Service() để xử lý yêu cầu từ Client (browser) và trả lời cho Client.
Ex:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
}
- Servlet được chấm dứt bằng cách gọi method Destroy().
Method Destroy() được gọi chỉ một lần vào cuối vòng đời của một Servlet. Phương pháp này cung cấp cho Servlet một cơ hội để đóng Database Conextion, ngăn chặn chủ đề nền, viết danh sách cookie hoặc nhấn tính vào đĩa, và thực hiện các hoạt động dọn dẹp khác.
public void destroy() {
}
- Servlet được khởi tạo bằng cách gọi method Init().
Method init() được thiết kế để được gọi chỉ một lần. Nó được gọi khi Servlet đầu tiên được tạo ra, và không được gọi thêm cho mỗi yêu cầu của người sử dụng. Method init() tạo ra hoặc tải một số dữ liệu sẽ được sử dụng trong suốt cuộc đời của Servlet. Servlet thường được tạo ra khi người sử dụng đầu tiên gọi một URL tương ứng với Servlet, hoặc khi Server bắt đầu hoạt động.
Ex:
public void init() throws ServletException
{
}
- Gọi các method Servlet Service() để xử lý yêu cầu của Client.
Method Service() là phương pháp chính để thực hiện các công việc thực tế. Servlet Container (Web Server) gọi Service() để xử lý yêu cầu từ Client (browser) và trả lời cho Client.
Ex:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
}
- Servlet được chấm dứt bằng cách gọi method Destroy().
Method Destroy() được gọi chỉ một lần vào cuối vòng đời của một Servlet. Phương pháp này cung cấp cho Servlet một cơ hội để đóng Database Conextion, ngăn chặn chủ đề nền, viết danh sách cookie hoặc nhấn tính vào đĩa, và thực hiện các hoạt động dọn dẹp khác.
public void destroy() {
}
Giao thức HTTP...
HyperText Transfer Protocol (HTTP): Là giao thức trao đổi thông tin ở dạng Siêu Văn bản qua Internet.
Đươc dùng để liên hệ thông tin giữa Web Server và Web Client là giao thức Client/Server dùng cho World Wide Web (WWW), HTTP là một giao thức ứng dụng của bộ giao thức TCP/IP (các giao thức nền tảng cho Internet).
Công nghệ Java Web...
Java là một nền tảng để phát triển các ứng dụng, phần mềm. Đánh dấu sự phát triển và trưởng thành của mô hình lập trình hướng đối tượng, nó được coi là nền tảng mang tính cách mạng trong ngành phần mềm.
Hiện nay, Java được chia thành ba bộ phận: Applet, Sevlets và Java Server Pages (JSP).
- Applet: là công nghệ Web đầu tiên của Java là một công nghệ "đã cũ". Một Applet là một chương trình Java nhỏ được tải về từ một máy chủ web và thực hiện trong trình duyệt. Applet có thể chạy hoàn toàn trên Client, hoặc kết nối lại cho máy chủ được tải về từ gửi và nhận dữ liệu.
- Sevlet: Là công nghệ Web đầu tiên bên phía Server của Java. Một Servlet là một Class thông thường mà thực hiện một giao diện Servlet đặc biệt. Sau đó Class này được triển khai trong một Servlet Container. Servlet Container được kết nối với một Server Web. Khi một yêu cầu HTTP đến được Server Web mà phải được xử lý bởi một Servlet, các Server Web sẽ chuyển tiếp yêu cầu đến Servlet Container. Servlet Container sau đó chuyển tiếp yêu cầu đến Servlet đó là để xử lý các yêu cầu. Kể từ khi Servlet Container đang chạy tất cả các thời gian, đó là Servlet.
- JSP: là một phản ứng đối với khiếu nại mà nhúng HTML bên trong Servlet. JSP ngắn hơn nhiều so với Servlet, và nó dễ dàng hơn nhiều trong HTML.
Hiện nay, Java được chia thành ba bộ phận: Applet, Sevlets và Java Server Pages (JSP).
- Applet: là công nghệ Web đầu tiên của Java là một công nghệ "đã cũ". Một Applet là một chương trình Java nhỏ được tải về từ một máy chủ web và thực hiện trong trình duyệt. Applet có thể chạy hoàn toàn trên Client, hoặc kết nối lại cho máy chủ được tải về từ gửi và nhận dữ liệu.
- Sevlet: Là công nghệ Web đầu tiên bên phía Server của Java. Một Servlet là một Class thông thường mà thực hiện một giao diện Servlet đặc biệt. Sau đó Class này được triển khai trong một Servlet Container. Servlet Container được kết nối với một Server Web. Khi một yêu cầu HTTP đến được Server Web mà phải được xử lý bởi một Servlet, các Server Web sẽ chuyển tiếp yêu cầu đến Servlet Container. Servlet Container sau đó chuyển tiếp yêu cầu đến Servlet đó là để xử lý các yêu cầu. Kể từ khi Servlet Container đang chạy tất cả các thời gian, đó là Servlet.
- JSP: là một phản ứng đối với khiếu nại mà nhúng HTML bên trong Servlet. JSP ngắn hơn nhiều so với Servlet, và nó dễ dàng hơn nhiều trong HTML.
Thứ Năm, 28 tháng 8, 2014
Mô hình Client-Server
Hôm nay tôi sẽ giới thiệu sơ lược cho các bạn về một mô hình thiết kế phần mềm phân tán trong ngành lập trình. Đó là mô hình Client-Server... Trước khi đi vào tìm hiểu thì tôi sẽ nêu ra một số câu hỏi được đề cập đến trong bài viết này.
Mô hình Client-Server là gì? Mô hình Client-Server dùng như thế nào? Và khi nào chúng ta sử dụng mô hình Client-Server?
Đầu tiên, mô hình Client-Server (hay còn gọi là mô hình máy Khách-Chủ) là một mô hình mà trong đó Server(Máy Chủ) là một hệ thống máy tính cung cấp các tài nguyên và dịch vụ mạng cho toàn bộ hệ thống mạng sử dụng. Còn một hệ thống máy tính sử dụng các tài nguyên và dịch vụ này được gọi là Client(Máy Khách). Các server thường cố cấu hình mạnh hoặc là những máy tính chuyên dụng và một Server có thể phục vụ rất nhiều Client chứ không nhất thiết là một Client và một Server. Cũng là một máy tính Server nhưng khi đem ra sử dụng chính những tài nguyên và dịch vụ đấy thì máy tính đó cũng được coi là một Client.
Hệ thống Client-Server được sử dụng rất rộng rãi trong thiết kế phần mềm phân tán. Cho dù một Server phải quản lý hàng nghìn Client thiết kế chương trình thì chúng ta cũng chỉ phải quan tâm đến một mối quan hệ là một Server và một Client. Và các tài nguyên và dịch vụ được đặt ở trong một máy chủ Server chứ không phải chứa trong nhiều máy khác nhau. Và chúng ta cũng đơn giản hóa hệ thống này trong nhiều khâu quan trọng như bảo mật, cập nhật chương trình, cập nhật phần mềm, chỉnh sửa... vì vậy đấy là những ưu điểm lớn nhất trong mô hình hệ thống Client-Server.
Tuy nhiên, bên cạnh những ưu điểm tích cực thì mô hình này cũng có những hạn chế của nó. Khi mà tất các tài nguyên và dịch vụ được đặt hết lên vai Server thì nó cũng là một mối nguy hại cho toàn bộ hệ thống máy Khách-Chủ. Giả sử như khi Server bị tấn công hoặc có một số trục trặc gì đấy thì toàn bộ hệ thống sử dụng Client sẽ bị tê liệt hoàn toàn. Và cũng có những trường hợp Server bị treo khi không xử lí kịp rất nhiều nhũng câu hỏi cần trả lời của một hệ thống Client rộng khắp. Để hạn chế những vấn đề này thì người ta thường bố trí một Server có thêm nhiều máy tính theo nhiều cách khác nhau. Và khi nhìn từ Client thì những máy tính này như một Server bình thường.
Hiện nay mô hình Client-Server có một biến thể tương đồng nhưng hoạt động theo cách ngược lại chứ không theo cách thức mà mô hình Client-Server hoạt động. Đó là hệ thống mạng ngang hàng Peer to Peer(P2P). P2P hoạt động theo cách thức tất cả các máy tham gia đều sẽ là Client và Server, các tài nguyên và dịch vụ sẽ nằm phân tán trên tất cả các máy và Client sẽ tự tìm và kết nối với nhau qua một hệ thống tìm kiếm chung. Vậy nên mô hình P2P sẽ triệt tiêu hết những khuyết điểm của mô hình Client-Server, nhưng không hẳn nó không có khuyết điểm. khuyết điểm lớn nhất của nó là tốn nhiều thời gian để duy trì, cài đặt...
Chúng ta cũng có thể coi mạng Internet hiện thời là một mô hình P2P.
Mô hình Client-Server là gì? Mô hình Client-Server dùng như thế nào? Và khi nào chúng ta sử dụng mô hình Client-Server?
Đầu tiên, mô hình Client-Server (hay còn gọi là mô hình máy Khách-Chủ) là một mô hình mà trong đó Server(Máy Chủ) là một hệ thống máy tính cung cấp các tài nguyên và dịch vụ mạng cho toàn bộ hệ thống mạng sử dụng. Còn một hệ thống máy tính sử dụng các tài nguyên và dịch vụ này được gọi là Client(Máy Khách). Các server thường cố cấu hình mạnh hoặc là những máy tính chuyên dụng và một Server có thể phục vụ rất nhiều Client chứ không nhất thiết là một Client và một Server. Cũng là một máy tính Server nhưng khi đem ra sử dụng chính những tài nguyên và dịch vụ đấy thì máy tính đó cũng được coi là một Client.
Hệ thống Client-Server được sử dụng rất rộng rãi trong thiết kế phần mềm phân tán. Cho dù một Server phải quản lý hàng nghìn Client thiết kế chương trình thì chúng ta cũng chỉ phải quan tâm đến một mối quan hệ là một Server và một Client. Và các tài nguyên và dịch vụ được đặt ở trong một máy chủ Server chứ không phải chứa trong nhiều máy khác nhau. Và chúng ta cũng đơn giản hóa hệ thống này trong nhiều khâu quan trọng như bảo mật, cập nhật chương trình, cập nhật phần mềm, chỉnh sửa... vì vậy đấy là những ưu điểm lớn nhất trong mô hình hệ thống Client-Server.
Tuy nhiên, bên cạnh những ưu điểm tích cực thì mô hình này cũng có những hạn chế của nó. Khi mà tất các tài nguyên và dịch vụ được đặt hết lên vai Server thì nó cũng là một mối nguy hại cho toàn bộ hệ thống máy Khách-Chủ. Giả sử như khi Server bị tấn công hoặc có một số trục trặc gì đấy thì toàn bộ hệ thống sử dụng Client sẽ bị tê liệt hoàn toàn. Và cũng có những trường hợp Server bị treo khi không xử lí kịp rất nhiều nhũng câu hỏi cần trả lời của một hệ thống Client rộng khắp. Để hạn chế những vấn đề này thì người ta thường bố trí một Server có thêm nhiều máy tính theo nhiều cách khác nhau. Và khi nhìn từ Client thì những máy tính này như một Server bình thường.
Hiện nay mô hình Client-Server có một biến thể tương đồng nhưng hoạt động theo cách ngược lại chứ không theo cách thức mà mô hình Client-Server hoạt động. Đó là hệ thống mạng ngang hàng Peer to Peer(P2P). P2P hoạt động theo cách thức tất cả các máy tham gia đều sẽ là Client và Server, các tài nguyên và dịch vụ sẽ nằm phân tán trên tất cả các máy và Client sẽ tự tìm và kết nối với nhau qua một hệ thống tìm kiếm chung. Vậy nên mô hình P2P sẽ triệt tiêu hết những khuyết điểm của mô hình Client-Server, nhưng không hẳn nó không có khuyết điểm. khuyết điểm lớn nhất của nó là tốn nhiều thời gian để duy trì, cài đặt...
Chúng ta cũng có thể coi mạng Internet hiện thời là một mô hình P2P.
Học, chỉ đơn giản là học?
Tôi đang học, bạn đang học, mọi người cũng đang phải học. Vậy bạn học như thế nào? Học đến bao giờ? Cách Học của bạn ra sao? Vân vân và vân vân...
Hôm nay tôi sẽ trả lời hết mọi câu hỏi mà bạn đang thắc mắc, tuy chưa hẳn đã hoàn toàn chính xác nhưng tôi sẽ cố gắng hết mức để cho bạn hiểu..
Tôi đang học tại một ngôi trường có thể nói là danh tiếng hàng đầu Việt Nam, ở đây mọi thứ rất là tuyệt vời. Từ chuyện học hành, nghỉ ngơi thư giãn đến những kỹ năng sống, kỹ năng làm việc của bạn cũng sẽ được chau chuốt.. Do tôi còn phải đi làm và cái tính không được chịu khó trong học hành nên sự học với tôi trở thành một thứ gì đó xa xỉ.
Cũng như bạn được biết con người ta sẽ cần phải có một sự học bám theo mình từ khi còn là một đứa trẻ đến khi chúng ta trở về với cát bụi thì sự học mới kết thúc. Tóm lại sự học đi theo suốt cuộc đời của một con người.
"Cách học" à? Trong cuộc đời này có hàng trăm hàng ngàn cách học khác nhau, từ khó đến dễ, từ cũ đến mới, từ cái cách diễn đạt này sang cách diễn đạt nọ... mọi người sẽ phải tự đúc kết và rút ra cho mình một cách học dễ dàng, nhanh chóng và hiệu quả nhất. Còn tôi, đơn giản thôi! Những gì đã được học trên lớp bạn cố gắng nghe lọt tai không sai chữ nào, sau đó về nhà bạn cố gắng tư duy và nhớ lại những cái mà bạn nghe trên lớp rồi diễn đạt nó ra trong bài tập bạn đang thực hành. Quan trọng là nhưng Demo thầy giáo đã hướng dẫn bạn từng chi tiết, bạn hãy thao tác lại thật nhiều lần đến khi nào bạn không cần phải cần sự hướng dẫn của những Demo mà bạn vẫn hoàn thành tốt. Bạn hãy tự tạo ra cho mình những bài tập, hoàn thành hết chúng rồi tìm hiểu trên những thiết bị thông tin. Và một điều không thể thiếu nếu như bạn muốn học thật tốt, đó là... bạn cần có nhóm những bạn cùng học chung ở nhà với bạn. Khi đó những bạn bè trong nhóm sẽ là những hướng dẫn viên đắc lực nhất cho các thành viên...
Đấy, cái sự học của tôi là thế đấy các bạn ạ!!
Tôi đang học tại một ngôi trường có thể nói là danh tiếng hàng đầu Việt Nam, ở đây mọi thứ rất là tuyệt vời. Từ chuyện học hành, nghỉ ngơi thư giãn đến những kỹ năng sống, kỹ năng làm việc của bạn cũng sẽ được chau chuốt.. Do tôi còn phải đi làm và cái tính không được chịu khó trong học hành nên sự học với tôi trở thành một thứ gì đó xa xỉ.
Cũng như bạn được biết con người ta sẽ cần phải có một sự học bám theo mình từ khi còn là một đứa trẻ đến khi chúng ta trở về với cát bụi thì sự học mới kết thúc. Tóm lại sự học đi theo suốt cuộc đời của một con người.
"Cách học" à? Trong cuộc đời này có hàng trăm hàng ngàn cách học khác nhau, từ khó đến dễ, từ cũ đến mới, từ cái cách diễn đạt này sang cách diễn đạt nọ... mọi người sẽ phải tự đúc kết và rút ra cho mình một cách học dễ dàng, nhanh chóng và hiệu quả nhất. Còn tôi, đơn giản thôi! Những gì đã được học trên lớp bạn cố gắng nghe lọt tai không sai chữ nào, sau đó về nhà bạn cố gắng tư duy và nhớ lại những cái mà bạn nghe trên lớp rồi diễn đạt nó ra trong bài tập bạn đang thực hành. Quan trọng là nhưng Demo thầy giáo đã hướng dẫn bạn từng chi tiết, bạn hãy thao tác lại thật nhiều lần đến khi nào bạn không cần phải cần sự hướng dẫn của những Demo mà bạn vẫn hoàn thành tốt. Bạn hãy tự tạo ra cho mình những bài tập, hoàn thành hết chúng rồi tìm hiểu trên những thiết bị thông tin. Và một điều không thể thiếu nếu như bạn muốn học thật tốt, đó là... bạn cần có nhóm những bạn cùng học chung ở nhà với bạn. Khi đó những bạn bè trong nhóm sẽ là những hướng dẫn viên đắc lực nhất cho các thành viên...
Đấy, cái sự học của tôi là thế đấy các bạn ạ!!
Đăng ký:
Bài đăng (Atom)