Thứ Hai, 14 tháng 7, 2014

install struts2 plugin for netbeans


Tải  struts2 plugin  về,sau đó giải nén.


B1:Mở netbean lên,ta chọn Tools/Plugin 



B2:Trong Plugin ta ấn vào mục Downloaded/Add Plugins...


B3:Chọn vào file mà ta đã giải nén.=>Open

B4:Tiếp tục ta chọn Install


B5:Tiếp tục ấn Next:
B6:Ta chọn I accept.../Install

B7:Ta đợi đê hoàn tất quá trình cài đặt,nhấn Finish để restart IDE


Như vậy với một vài bước cơ bản ta đã cài đặt được Struts2 plugin cho netbean.











JSP Model 2

 JSP model 2 là mô hình gần giống với MVC pattern .


Khi trình duyệt request đến ,các controller sẽ nhận thông tin và xử lý thông tin này , nếu nó cần thông từ javabean , nó sẽ khởi tạo đối tượng của javabean, Javabean sẽ lấy dữ liệu từ Enterprise Server/Datasource. Sau khi bean thu được data nó sẽ truyền thông tin đó về view được controller chọn để hiển thị thông tin trên view(jsp pages).

JSP chỉ làm một nhiệm vụ duy nhất là hiện thị thông tin,các controller có nhiệm vụ nhận thông tin và xử lý ,sau đó trả kết quả về cho người dùng.

Trong mô hình này trình duyệt sẽ không gọi đến các trang jsp khác để xử lý , hay xử lý bên trọng jsp đó , mà nó sẽ gửi thông tin để xử lý ở servlet , đóng vai trò là controller

Mô hình này phù hợp cho việc phat triển những ứng dụng phức tạp,có việc bảo trì dễ dàng hơn.

So sánh giữa JSP MODEL 1 và JSP MODEL 2





Demo sử dụng jsp model 2:

Bước 1: tạo sql server



Bước 2: Tạo new project



Bước 3: add jdbc4 để kết nối database 


kết quả


Bước 4: tạo Product.java




Bước 5: Tạo DataAcess để kết nối database
code kết nối:


code lấy tất cả danh sách Product


Bước 6: tạo ListServlet 



Bước 7: Tạo trang home.jsp để hiện thị danh sách sản phẩm


Kết quả

trang home.jsp

Nhận Xét chung

- Mô hình 1 thì chỉ phì hợp cho chúng ta vs các ứng dụng đơn giản, Mô hình 2 thì phù hợp cho ứng dụng phức tạp hơn
- Mô hình 1 thì làm nhanh hơn, Mô hình 2 làm lâu hơn, phát triển những ứng dụng sửa đổi bảo trì tốt hơn
- Mô hình 1 thì làm cùng 1 người từ view coontroller, model, Mô hình 2 có thể tách ra, mỗi người làm 1 phần cũng được.
Ta thấy thì mô hình 2 phù hợp vs ứng dụng web hơn

Chủ Nhật, 13 tháng 7, 2014

Develop a web application using JDBC

Hôm nay chúng ta sẽ làm một demo web application mô hình MVC có sử dụng JDBC:
Ứng dụng ở đây là ứng dụng về tìm kiếm công ty thông qua tên cho các công dân.

Các bước thực hiện:

B1: Tạo cơ sở dữ liệu như sau:


B2:Tạo mới Web application với các components như sau:


B3:Add thêm thư viện sqljdbc4


B4:Code kết nối với dabase tại class DataAccess


B5:Code phương thức search company trong class companyModel



B5:Code trong searchController,controller này có nhiệm vụ nhận thông tin từ trang index.jsp,sau đó xử lý thông tin và trả kết quả về trang home.jsp


B6:Code ở 2 trang index.jsp va home.jsp




Kết quả:


Khi ta không nhập tên công ty ,mà ấn nút search sẽ thong báo ra mời nhập tên.


Khi ta nhập đúng tên công ty ,sẽ cho kết quả như hình trên.



Source code:Tải về tại đây








JSP Model 1

Trong mô hình này thì Jsp xử lý toàn bộ mọi công việc liên quan đến controller và view.Khi trình duyệt gửi request đến trang jsp,trang jsp sẽ nhận thông tin và xử lý sau đó đẩy lại kết quả cho 1 trang jsp khác.Nếu trang jsp cũng cần dữ liệu thì nó sẽ được lại từ javabean khác

-Ở đấy các trang jsp được liên kết với nhau thông qua các thẻ html:
         <a href=“find.jsp”> Search </a>
          <form action=“find.jsp”> … </form>



Khi trình duyệt gửi request đến trang jsp,trang jsp nếu cần thiết dữ liệu sẽ lấy từ javabean,javabean tương tác với 1 Enterprise Information System (database Server hoặc 1 hệ thống khác).

Mô hình này đơn giản phù hợp cho ứng dụng có độ phực tạp thấp .


Demo:

Bước 1: tạo sql server



Bước 2: Tạo new project



Bước 3: add jdbc4 để kết nối database 


kết quả


Bước 4: tạo Product.java




Bước 5: Tạo DataAcess để kết nối database
code kết nối:


code lấy tất cả danh sách Product


code lấy Product theo Id

Bước 6: tạo ProductBean để lấy dữ liệu hiện thị danh sách Product

Bước 7: Tạo OrderBean để lấy dữ liệu danh sách mua và tiền


Bước 8: Viết code cho index.jsp để hiện thị danh sách Product


Bước 9: Tạo trang Order.jsp để hiện thị danh sách mua và giá tiền


Kết quả

trang index.jsp


Nếu mua sản phẩm giá <40000

trang order.jsp
Nếu mua sản phẩm giá > 4000 thì tiền đc trừ 10%

trang order.jsp




Thứ Bảy, 12 tháng 7, 2014

MVC Pattern

I/ Khái niệm:

1. Tách biệt phần ánh xạ, lưu trữ và xử lý dữ liệu (model) tách biệt với TP trình bày giao diện cho người dùng
Hiểu dễ hơn:
Tách biệt quá trình xây dựng chức năng cho ứng dụng và quá trình xây dựng giao diện cho người dùng.
Đưa ra Model để không cho người dùng tương tác trực tiếp vào dữ liệu vật lý (CSDL hay tập tin).
Như 2 điều trên ->tách Model và View. Nhưng cần có 1 thành phần lựa chọn và kết nối các thành phần này lại với nhau => Controller: đón nhận yêu cầu nhập xuất từ người dùng, xác định model tương ứng với view nhập để đưa model xử lý và hiện thị cho người dùng.

View: màn hình TV; Model: Nhận tín hiệu từ Controller; controller: ‘mop’(đồ điều khiển) bấm do bạn điều khiển.




Model:
- Là các thành phần hỗ trợ ánh xạ dữ liệu vật lí lên bộ nhớ, lưu trữ dữ liệu tạm thời, hỗ trợ các cách thức xử lý dữ liệu, hỗ trợ khả năng giao tiếp và trao đổi dữ liệu giữa các đối tượng khác trong bộ nhớ và cơ sở dữ liệu.
- 1 đối tượng Object trong khái niệm của lập trình hướng đối tượng
- Trong web của java, model là JavaBean hay Enterprise hay Web Service
View:
- Thành phần hỗ trợ trình bày dữ liệu và kết quả ra màn hình, hỗ trợ nhập thông tin từ người dùng
- Các thành phần này có khả năng truy cập Model, truy xuất Model thông qua những hành vi mà Model cho phép nhưng View không thể thay đổi các thành phần trong Model.
-Trong mô hình ứng dụng web: html, servlet, jsp…là thành phần đại diện VIEW.
Controller:
- Là các thành phần hỗ trợ kết nối người dùng server, đón nhập yêu cầu người dùng, thực hiện chuyển xử lí, lựa chọn và cập nhật Model và View tương ứng để trình bày cho người dùng.
- Hỗ trợ kết nối giữa người,model và view, giúp model xác định được view trình bày.


II/Ưu điểm và nhược điểm của MVC

1. Ưu điểm:
Thể hiện tính chuyên nghiệp trong lập trình, phân tích thiết kế. Do được chia thành các thành phần độc lập nên giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp, bảo trì..
2. Nhược điểm:
Đối với dự án nhỏ việc áp dụng mô hình MC gây cồng kềnh, tốn thời gian trong quá trình phát triển. Tốn thời gian trung chuyển dữ liệu của các thành phần.


AWAJS Overeview

Thiết kế ứng dụng web dùng 2 framework trong java :JSF và Struts

1.Nội dung môn học
Nội dung chính của môn :học cách thiết kế ứng dụng web
Nội dung chi tiết: gồm 3 nội dung chính:
+MVC Design Pattern
+JSF Framework
+Struts Framework

Mục tiêu của môn học: xây dựng được một ứng dụng web sử dụng 2 framework JSF và Struts

2.Những việc cần làm ở môn này

Giống như môn trước ,chúng ta sẽ học qua các video bài giảng ,sau đó chúng ta phải delivery:chúng ta sẽ tóm tắt những gì mà ta học được bằng các blog,làm các demo để chứng minh những gì mà bạn học được,sau đó trình bày các bước thực hiện bài demo đó,cuối cùng ta sẽ up source code lên.Việc viết blog sẽ giúp chúng ta tích lũy một lượng kiến thức .



Chủ Nhật, 6 tháng 7, 2014

Login and Logout

Login and logout là 2 thao tác mà bất kỳ một ứng dụng web nào cũng cần phải có.Hôm nay,chúng ta sẽ tìm hiểu các dùng 2 thao tác trên trong JSP Servlet.

-Ta sẽ xây dựng 1 ứng dụng web với thao tác login va logout:
+Trước khi đăng nhập người dùng không được phép truy xuất vào các tài  nguyên được bảo vệ
Chặng hạn ,ta đang ơ trag login page.jsp,ta buộc phải đăng nhập để vào trang homepage.jsp.
Ở đây ta sẽ sử dụng filter Authenticate,Filter Authenicate sẽ chặn lại request đến tất cả các trang trong hệ thống.
Trong Filter Authenticate chúng ta khai báo một phương thức như sau:

public boolean isFreeAccess(String url) {
        if ((!"".equals(url) && url.contains("Welcome")) || (!"".equals(url) && url.contains("LoginServlet.jsp"))) {
            return true;
        }
        return false;
    }

Phương thức này dùng để check và phân loại request.

Tiếp đến trong phương thức doFilter chúng ta viết những đoạn mã sau:

String url = httpRequest.getRequestURI();
        request.setAttribute("wantedUrl", url);

        if (isFreeAccess(url) || httpRequest.getSession().getAttribute("username") != null) {
            chain.doFilter(request, response);
        } else {
            RequestDispatcher dis = request.getRequestDispatcher("Login.jsp?url=" + url + "");
            dis.forward(request, response);
        }

+Một Servlet sẽ lam nhiệm vụ kiểm tra username và password của người dùng nhập vào,nếu username và password của dùng nhập vào trùng với username ,password được lưu trong database ,kết quả sẽ được resquestDispatcher tới trang homepage.jsp,còn nếu sai sẽ trả về trang hiện thời.

 String username = request.getParameter("username");  
 String password = request.getParameter("password"); 
 User user = new User(username, password);   
 if (UserModel.checkLogin(user) == true) {
 HttpSession s=((HttpServletRequest) request).getSession(); 
 s.setAttribute("username", username);               
 RequestDispatcher rd = request.getRequestDispatcher("home.jsp");                
rd.forward(request, response);            
} else {                
RequestDispatcher rd = request.getRequestDispatcher("login.jsp");                
rd.forward(request, response);           
 }


-Logout:để logout ta dùng phương thức session.invalidate(),sau đó resquestDispatcher về trang login,jsp

HttpSession session = request.getSession();
              session.invalidate();
              response.sendRedirect("login.jsp");