MVC là một mô hình mà hiện nay phần lớp các ứng dụng đều xây dựng dựa trên mô hình này. Trong đó thì gồm có 3 đối tượng cơ bản là: model, view controller.
Model là gì?
Model là nơi lưu trữ dữ liệu, nghiệp vụ và tính logic của ứng dụng.
View là gì?
View là nơi hiển thị và tương tác với người dùng.
Controller là gì?
Controller là nơi điều khiển để tương tác với view và controller
Cách làm việc: Khi người dùng thực hiện một thao tác nào đó trên web thì khi đó view sẽ gửi request đến controller. Sau đó controller sẽ xử lý dữ liệu và chuyển những yêu cầu đến model
Nên sử dụng mô hình này khi nào? Mô hình này nên sử dụng cho những ứng dụng phức tạp, có nhiều chức năng. mức độ phức tạp càng cao thì càng cần thiết. Bới lẽ MVC là có tính bảo trì cao.
Thứ Hai, 29 tháng 9, 2014
Thứ Tư, 10 tháng 9, 2014
Tìm hiểu về JDBC trong JSP
JDBC (Java Database Connectivity) là một thư viện để truy xuất cơ sở dữ liệu đối với các ứng dụng Java nói chung.
Để thiết lập kết nối cơ sở dữ liệu cần trải qua 4 giai đoạn sau:
1. Kết nối với thư viện JDBC
Để kết nối một cơ sở dữ liệu thì ta sử dụng lớp DriverManager. JDBC có thể kết nối cơ sở dữ liệu từ Oracle, Microsoft SQL Server, Sybase, MySQL. Để được sử dụng được thư viện này thì chúng ta cần add file .jar vào thư mục lib của project. Sau đó bạn gọi đến phương thức Class.forName("JDBC.driver");
Ví dụ:
- đối vơi ODBC database: Class.forName("org.gjt.mm.mysql.Driver");
- đối với Microsoft SQL Server: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Sau khi kết nối với thư viện thì bạn cần kết nối với cơ sở dữ liệu.
Ví dụ :
- Đối với Microsoft SQL Server: Connection = DirverManager.getConnection(url, user, password);
- Đối với MySQL: Connection mySQLCon = DriverManager.getConnection("jdbc:mysql//user", "budi", "secret");
3. Truyền vào các câu lệnh.
Sử dụng Statement để kết nối đến đối tượng của cơ sở dữ liệu.
Trong đó sử dụng hai phương thức để truy xuất đến đó là:
- executeQuery() để thực hiện các câu lệnh lấy dữ liệu từ database ra. Sử dụng ResultSet để lấy các thuộc tính của đối tượng.
- executeUpdate() để thực hiện các câu lệnh insert, update hay delete dữ liệu.
Sau khi truy xuất đến các đối tượng để thục hiện các câu lệnh truy xuất thì phương thức ResultSet giúp trả về kết quả truy xuất.
Ví dụ:
- bạn thực hiện các câu lệnh insert, update, delete thì ResultSet sẽ trả về true hoặc false để bạn biết câu lệnh truy xuất cảu bạn có thực hiện thành công.
- Còn đối với câu lệnh select thì ResultSet lại trả về một list các đối tượng. Khi đó bạn sử dụng lệnh next() để đọc các giá trị ra.
Thứ Ba, 9 tháng 9, 2014
Servlet Context
Servlet context là gì?
Servlet context là ứng dụng để duy trì trạng thái của mỗi ứng dụng web. Servlet context tương tác giữa server và nhiều client khác nhau chứ không chỉ sự duy trì của mỗi client, hay là để cung cấp thông tin với các servlet Vì vậy người ta thường dùng nó để đếm các lượt truy cập của trang web .
Sử dụng Servlet context
- getAttribute(String name) : trả về các thuộc tính với tên được chỉ định, hoặc null nếu không có thuộc tính bằng tên đó.
- getInitParameter(String name): trả về giá trị tham số với tên đước chỉ định, hoặc null nếu tên không tồn tại
- setAttribute(String name,Object obj): thiết lập một đối tượng với tên thuộc tính được đưa ra trong phạm vi áp dụng
- removeAttribute(String name): loại bỏ các thuộc tính với tên được chỉ định.
Xem tham khảo souce code Xem hướng dẫn chi tiết tại đây
Session
Session là gì?
Trong các ứng dụng mạng, đối với mỗi lần chạy ứng dụng thì thường có những dữ liệu cần lưu trữ giữa các trang với nhau. Tuy nhiên những thông tin này sẽ kết thúc khi kết thúc ứng dụng, trình duyệt hay kết thúc sau một thời gian đã được định sẵn.
Servlet có rất nhiều phương thức để sử dụng session:
Khi nào chúng ta cần dùng session?
Khi muốn chuyển dữ liệu từ trang này sang trang khác một cách nhanh chóng không dườm dà . Ví dụ như khi bạn đăng nhập vào một ứng dụng nào đó thành công bạn muốn lưu lại tên đăng nhập để hiển thị thông tin của người đăng nhập ơ những trang tiếp theo thì bạn nên sử dụng session.
Sử dụng session như thế nào?
Sau đây là source code. Ban có thể tham khảo thêm tại đây
Trong các ứng dụng mạng, đối với mỗi lần chạy ứng dụng thì thường có những dữ liệu cần lưu trữ giữa các trang với nhau. Tuy nhiên những thông tin này sẽ kết thúc khi kết thúc ứng dụng, trình duyệt hay kết thúc sau một thời gian đã được định sẵn.
Servlet có rất nhiều phương thức để sử dụng session:
- URL rewriting
- Servlet APIs
- Persistent machansm
- Presistent cookies
- Hidden form variable
Khi nào chúng ta cần dùng session?
Khi muốn chuyển dữ liệu từ trang này sang trang khác một cách nhanh chóng không dườm dà . Ví dụ như khi bạn đăng nhập vào một ứng dụng nào đó thành công bạn muốn lưu lại tên đăng nhập để hiển thị thông tin của người đăng nhập ơ những trang tiếp theo thì bạn nên sử dụng session.
Sử dụng session như thế nào?
- Phương thức lấy giá trị: getName(),getValue(),getPath(),getDomain(),getMaxAge(),getSecure()...
- Phương thức thiết lập: setValue(),setPath(),..
Sau đây là source code. Ban có thể tham khảo thêm tại đây
Dispacher servlet
Dispater servlet là gì?
Dispatcher là một interface requestDispatcher của request nó giúp cho trang web trở nên linh hoạt hơn, các servlet có thể gọi và thực hiện công việc của các servlet khác thông qua phương thức forward() và include().
Forward()
Đối với phương thức forward() này thì servlet sẽ chuyển hướng tới servlet được gọi tới.
Include()
Đối với phương thức Include() thì các servlet được gọi đến sẽ đè lên nội dung của servlet hiện tại
Sau đây là souce code. Hay có thể tham khảo thêm tại đây
Dispatcher là một interface requestDispatcher của request nó giúp cho trang web trở nên linh hoạt hơn, các servlet có thể gọi và thực hiện công việc của các servlet khác thông qua phương thức forward() và include().
Forward()
Đối với phương thức forward() này thì servlet sẽ chuyển hướng tới servlet được gọi tới.
Include()
Đối với phương thức Include() thì các servlet được gọi đến sẽ đè lên nội dung của servlet hiện tại
Sau đây là souce code. Hay có thể tham khảo thêm tại đây
Thứ Sáu, 5 tháng 9, 2014
Đối số đầu vào của Servlets (Initialising Parameters Of Servlets)
Sự cân thiết của đối số đầu vào trong Servlets (Need for init servlet)
Trong ứng dụng web, thông tin kết nối database, ví dụ như tên SQL và mật khẩu sẽ không gửi tới servlet tất cả các lần gửi thông tin. Sau đây là một số thông tin serverlet cần trước khi bắt đầu một vòng đời.
Truyền vào các đối số từ phía client sau đó gửi tới servlet để thực hiện cho lần đầu tiên hoặc khôi phục, hình thành dữ liệu cần thiết bắt đầu định nghĩ để sử dụng, servlet cần những giá trị ban đầu này. Cần truyền thông tin từ client đến servlet chính xác liên tục để bắt đầu xử lý. Sau khi cài đặt các thông tin kết nối lần đầu nó sẽ tự xử lý servlet.
Định dạng đối số (Configure init parameters)
Đối số đầu vào có thể truy cập tới servlet. Đây là cách định dạnh đối số đầu vào trong file web.xml:
Trong ứng dụng web, thông tin kết nối database, ví dụ như tên SQL và mật khẩu sẽ không gửi tới servlet tất cả các lần gửi thông tin. Sau đây là một số thông tin serverlet cần trước khi bắt đầu một vòng đời.
Truyền vào các đối số từ phía client sau đó gửi tới servlet để thực hiện cho lần đầu tiên hoặc khôi phục, hình thành dữ liệu cần thiết bắt đầu định nghĩ để sử dụng, servlet cần những giá trị ban đầu này. Cần truyền thông tin từ client đến servlet chính xác liên tục để bắt đầu xử lý. Sau khi cài đặt các thông tin kết nối lần đầu nó sẽ tự xử lý servlet.
Định dạng đối số (Configure init parameters)
Đối số đầu vào có thể truy cập tới servlet. Đây là cách định dạnh đối số đầu vào trong file web.xml:
Để đọc được các đối số từ servlet thông qua phương thức init(). Trước tiên chúng ta cần chèn phương thức init() của GenericServlet. Và để lấy ra giá trị của đối số truyền vào thì ta sử dụng getInitParameter() trong ngoặc thì ta truyền tên của đối số đó vào. Nếu truyền đúng đối số và đối số đó có giá trị thì nó sẽ trả về giá trị của đối số, còn nếu đối số đó không tồn tại hoặc không có giá trị thì sẽ trả về giá trị null.
Bạn có thể xem thêm tại đây
Download source code
Web Development Process (Quá trình phát triển web)
Bước 1:
Để phát triển một web với netbean thì đầu tiên là cần cài đặt server tomcat.
Download and installing Tomcat
Bước 2:
Tiếp đến là tạo java web. File -> new Project -> Java Web -> Web Application -> Next
Bước 3:
Hoàn thành bước 2 là bạn đã có giao diện người dùng. Giao diện người dùng là chỉ để hiển thị giao diện chứ chưa thể xử lý những request lên server. Thử tạo một form có request viết ở file .jsp trong Web Pages.
Bước 4:
Tạo Server Servlet Source Packages -> New -> Servlet. Sau đó là class name là tên của Project. Chọn Folder chứa file hoặc đặt tên cho nó tại Package -> next.
Hoàn thành những bước trên thì bạn đã tạo được một web application. Có thể tham khảo thêm tại click here.
Download source code
Để phát triển một web với netbean thì đầu tiên là cần cài đặt server tomcat.
Download and installing Tomcat
Bước 2:
Tiếp đến là tạo java web. File -> new Project -> Java Web -> Web Application -> Next
Đặt tên cho project -> next.
Bạn có thể đặt đường dẫn theo ý muốn của mình ở ô Context Parth -> Finish.
Hoàn thành bước 2 là bạn đã có giao diện người dùng. Giao diện người dùng là chỉ để hiển thị giao diện chứ chưa thể xử lý những request lên server. Thử tạo một form có request viết ở file .jsp trong Web Pages.
Vì chưa có server nên khi chạy nó sẽ bào lỗi không tìm thấy.
Tạo Server Servlet Source Packages -> New -> Servlet. Sau đó là class name là tên của Project. Chọn Folder chứa file hoặc đặt tên cho nó tại Package -> next.
Hoàn thành những bước trên thì bạn đã tạo được một web application. Có thể tham khảo thêm tại click here.
Download source code
Thứ Năm, 4 tháng 9, 2014
Servlets Life Cycle (vòng đời của Servlet)
Vòng đời của servlet được bắt đầu khi gọi tới phương thức init(). Phương thức init() chỉ được gọi tới 1 lần khi khởi tạo servlet. Sau khi được khởi chạy thì servlet sử dụng phương thức service() để xử lý công việc. Phương thức service() dùng để chuyển thông tin từ client tới server và ngược lại. Sau khi hoàn thành các công việc và muốn kết thúc kết nối với server thì khi đó sử dụng đến phương thức destroy() cũng chỉ được gọi đến một lần duy nhất để kết thúc kết nối và cuối cùng là server servlet sẽ sử lý rác sau mỗi lần kết nối thì tất cứ mỗi lần hoàn thành được tất cả các thao tác trên thì tương ứng với kết thúc một vòng đời của mội server servlet.
Basic Of Hypertext Transfer Protocol
HTTP là chữ viết tắt từ Hypertext Transfer Protocol ( giao thức truyền tải siêu văn bản). HTTP là một giao thức truyền tải siêu văn bản World Wide Web đuợc xây dựng dựa vào nền của Internet và sử dụng giao thức TCP/IP để truyền tải thông tin giữa các web client và web server.HTTP xác định các thông điệp (các file văn bản, hình ảnh, âm thanh, video và những dạng file multimedia khác) và đặc biệt là có thể truyền tải các trang HTML có chứa các siêu liên kết (hyperlink).
Người ta thường gọi HTTP là một phương thức phi trạng thái (stateless) vì mỗi lệnh đều thực thi một cách độc lập, các câu lệnh sau sẽ không biết gì về các lệnh đã được thực hiện trước đó. HTTP là hệ thống một chiều khi các file chỉ được truyền tải từ máy chủ vào trình duyệt để làm việc chứ không thể truyền tải các file qua lại như FTP (viết tắt của File Transfer Protocol). Vì thế nên các file chỉ được truyền tải qua để làm việc chứ không tải và coppy vào thiết bị nhận.
Java Web Technology (Công nghệ ứng dụng web trong Java)
Công nghệ java web đã mở rộng sự năng động cho máy tính và truyền thông. Sau đây là một số công nghệ của Java web.
Applet
Applet là công nghệ web đầu tiên của Java. Applet là một chương trình nhỏ được tải về từ một máy chủ web và thực hiện các thao tác trong trình duyệt. Applet đã thu hút được nhiều sự quan tâm chú ý của các phương tiện truyền thông khi mới được biết đến, nhưng đáng buồn rắng Applet chưa bao giờ thực có được giao diện nền tảng cho ứng dụng web.
Applet có thể chạy hoàn toàn ở trình duyệt của các client, hoặc có thể kết nối lại với máy chủ để gửi và nhận dữ liệu.
Servlets
Servlets là công nghệ web phía server đầu tiên của Java. Nó có nghĩa là để thay thế cho công nghệ web đầu "CGI". CGI viết tắt của Common Gateway Interface là để tương tác động với người sử dụng. Chương trình này xử lý bởi các kịch bản. Chính vì thế mà công nghệ này tương đối chậm chạp và tối nhiều bộ nhớ. Chính vì thế Servlets ra đời.
Servlet là một lớp Java thông thường. Lớp này được triển khai tại nơi chứa Servlet. Nơi chứa servlet được kết nối mới máy chủ. Khi một yêu cầu HTTP đến được máy chủ mà phải được xử lý bởi một servlet, các máy chủ sẽ chuyển tiếp đến nơi chứa servlet để xử lý yêu cầu. Thông thường nơi chứa servlet đi cùng với máy chủ.
Công nghệ Java Servlet là nền tảng của tất cả các công nghệ ứng dụng web.
Java Server Pages (JSP)
Một trang JSP là một văn bản chứa hai loại văn bản: dữ liệu tĩnh có thể được thể hiện trong bất kỳ định dạng dựa trên văn bản (như HTML, SVG, WML và XML), các yếu tố trong JSP.
Thứ Tư, 3 tháng 9, 2014
Cấu trúc Client Server
Thế nào là client server?
Server là máy chủ nhận các yêu cầu của client sử lý thông tin nhận được và trả kết quả về cho client. Server có thể là: in ấn, chia sẻ tập tin, các ứng dụng.
Tuy nhiên client server cũng có thể giao tiếp với nhau khi chúng được đạt trên cùng một cái máy tính.
Việc giao tiếp giữa server và client được thực hiện dưới hình thức trao đổi thông điệp (message). Để được phục vụ client sẽ gửi thông điệp yêu cầu tới server (request message) mô tả về công việc muốn server thực hiện. Khi nhận được request từ client thì server tiến hành phân tích thực và sử lý yêu cầu sau đó sẽ trả về thông điệp trả lời cho client (response message). Quá trình đó được thể hiện như sau:
Sử dụng client server để làm gì?
Mô hình server client là mô hình tương đối qua trọng trong việc truy cập tài nguyên. Các máy tính khác có thể truy cập tài nguyên lưu trữ trong cùng một máy chủ. Đó là một trong những đặc thù quan trọng của mô hình server-client.
Sử dụng server-client khi nào?
- Dùng để lướt web.
- Chơi game online.
- Các ứng dụng mạng xã hội, chat chit.
So với các mô hình khác.
Server-client là mô hình tương đối thuận tiện tronh việc chuyển giao dữ liệu và tìm kiếm dữ liệu, dứng dụng. Dựa trên mô hình này thì ngày nay cloud computing đang ngày càng phát triển. Bạn chỉ cần có một thiết bị có thế kết nối internet hay mạng lan là bạn có thể có rất nhiều dữ liệu mà mình muốn mà không cần tời những thiết bị có dung lượng thật lớn để chứa dữ liệu. Nhờ nó là chúng ta cũng có thể chuyển giao dữ liệu từ thiết bị này qua thiết bị khác mà không cần tới những thiết bị lưu trữ, trao đổi dữ liệu thông thường.
Tuy nhiên mô hình này có khá nhiều điều bất tiện như:
- Nếu server tắt thì tất cả các công viêc truy xuất là vô ích.
- Vì sự chuyển giao dữ liệu của hai thiết bị ở những địa điểm cách xa nhau nên có thể dễ xảy ra hiện tượng thông tin truyền trên mạng bị lộ.
- Máy chủ có thể bị quá tải.
- Thường đắt hơn và khó khăn thiết lập ban đầu.
- Sẽ không làm được gì nếu thiết bị không được kết nối mạng.
Đảo ngược lớp học [Flipped classroom]
Có lẽ khi nghe tới cụm từ đảo ngược lớp học thì có thể có cơ số người đặt ra câu hỏi là: Lớp học đảo ngược thực chất là cái gì? Đảo ngược lớp học hay còn gọi là Flipped classroom.
Đối với phương pháp học truyền thống học sinh, sinh viên sẽ lên lớp học bài mới và luyện tập ở nhà. Nhưng với phương pháp này thì sinh viên, học sinh không phát huy được khả năng tự học của bản thân mà thay vào đó là dựa vào những thứ đã có đó mà không tự tìm tòi. Không những thế với phương pháp truyền thống này thì họ có ít thời gian trao đổi những khác mắc của bản thân với giáo viên.
Đối với phương pháp này thì sinh viên đầu tiên tự nghiên cứu về vấn đề được đặt ra có thể thông qua video của giáo viên đã chuẩn bị hoặc chọn từ một kho lưu trữ nào đó. Trong lớp thì sinh viên có thể vận dụng những thứ đã tìm hiểu để giải quyết một số vấn đề thực tế. Giáo viên có thể hỗ trợ cho sinh viên khi gặp vấn đề, đưa ra các câu hỏi để sinh viên trả lời theo quan điểm của mình. Cuối cùng là mỗi sinh viên cần phải đưa ra những báo cáo hay sơ đồ về những nội dung đã học. Tuy rằng là phương pháp mới nhưng vẫn sử dụng sơ đồ "learning cycle" để luyện tập.
Đối với các sinh viên bằng việc đưa ra các câu hỏi và trả lời. Thì sinh viên có thể giúp đỡ lẫn nhau như vậy có lợi cho cả người học nâng cao hay những người học thấp. Chính vì phương pháp này dự vào sự tự giác của sinh viên vì thế để kiểm tra được sinh viên đó có hoàn thành việc học không thì giáo viên có thể dựa vào những bào cáo và những câu hỏi trên lớp của sinh viên để đánh giá.
Đối với việc tự học ở nhà thì hiện nay có rất nhiều cách để chúng ta tự học ví dụ như: đọc sách, tìm kiếm video, tài liệu trên internet. Không những thế hiện nay có rất nhiều trang web giúp chúng ta tự học.
Đối với phương pháp này thì không còn là giáo viên quyết định nữa mà chính học sinh, sinh viên là những nhân tố quyết định. Bởi lẽ đối với mỗi sinh viên khi họ thực sự quan tâm và hứng thú thì họ sẽ bỏ thời gian tìm tòi và học hỏi về nó. Vậy làm sao để tạo được những cảm hứng đó cho sinh viên. Theo mình thì những giờ thực hành rèn luyện cùng bạn bè giáo viên là những giờ tạo nên những nguồn cảm hứng đó mội khi mà chúng ta thấy được sự thú vị của nó thì tất nhiên là muốn hiểu hơn về nó.
Để hiểu rõ hơn mời bạn xem Flipped classroom infographic
Đối với mình thì phương pháp này là một phương pháp tương đối hay để áp dụng cho việc học hiện nay. Khi học với phương pháp này thì mọi người có thể thoải mái phân bố thời gian để đạt được hiệu quả chứ không cần bó buộc khung thời gian như phương pháp truyền thống. Hơn thế nữa nó giúp mỗi chúng ta rèn luyện được khả năng tự học một cách hiệu quả và hiểu rõ hơn các vấn đề.
Đăng ký:
Bài đăng (Atom)