Thứ Hai, 29 tháng 9, 2014

Model View Controller(MVC)

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ứ 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");
2. Tạo kết nối.
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");
Sau khi kết thúc các kết nối thì bạn nên đóng kết nối để nó đỡ tối tài nguyên.

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.
4. Lấy kết quả.

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.
Sau đây là một số tham khảo souce code và tai đây

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:

  • 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

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:

Để đọ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


Đặt tên cho project -> next.

Bạn có thể đặt đường dẫn theo ý muốn của mình ở ô Context Parth -> Finish.



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.

Vì chưa có server nên khi chạy nó sẽ bào lỗi không tìm thấy.

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