Thứ Sáu, 25 tháng 11, 2016

EJB

I,giới thiệu về EJB

1.khái niệm
-EJB(Enterprise Java Bean) là một  kiến trúc bên phía server để xây dựng ứng dụng cho doanh nghiệp hay quy mô lớn,có khả năng mở rộng cao và mạnh mẽ để triển khai J2EE.
-Nó được đóng gói chứa đựng các nghiệp vụ logic của ứng dụng
-Nó là một nền tảng được sử dụng cho việc phat triển các ứng dụng có thể chạy trên nhiều nền tảng khác nhau,có tính tái sử dụng cao.
-EJB hướng tới xây dựng các ứng dụng thương mại lớn,phân tán.EJB đưa ra các kiển trúc và các đặc tả  cho việc phát triển và triển khai các thành phần component  phía server của các ứng dụng phân tán.
-EJB được chứa trong một trình chứa gọi là EJB container.Các EJB này sẽ quản lý các thực thi của EJB bao gồm cả việc truy cập tới các bean,bảo mật duy trì dữ liệu,trạng thái ,quản lý các giao dịch,Quản lí truy cập tới các tài nguyên của hệ thống.
1.Tại sao cần dùng EJB 
-Nó có tính tái sử dụng cao
-có khả năng phục vụ cho việc phat triển các ứng dụng lớn với lượng truy cập người dùng nhiều.

II,Cấu trúc về EJB

-Session Bean :quản lí các nghiệp vụ của client.Client gửi mesage tới session bean thông qua môi trường mạng.Session bean có thể gọi tới một entity bean hay mot session bean khác để xử lí.Session bean được chia làm hai loại.
  +stateless: trạng thái giao dịch của client sẽ không được lưu lại cho những lần   giao dich sau.Những lần giao dịch khác sẽ hoàn toàn độc lập với nhau.
  +statefull:trạng thái giao dịch của client sẽ được lưu trữ lại phục vụ cho những lần giao dịch lần sau.
-Entity Bean:Nó tương tự như những lớp java object cơ bản.Entity bean chứa các thông tin tác vụ và các phương thức hoạt động của nó.Một entity bean có thể được lưu trữ  và khôi phục lại một cách tự động bởi trình quản lí EJB .Khi client gủi message đến sesion bean và sau đó sesion bean map tới entity bean de xu lí và trả về kết quả.
  +Java Persistence API(JPA) :dùng cho việc truy xuât ,lưu trữ ,truy vấn với cơ sở dữ liệu.
-Mesage-driven bean:điều khiển message giua client va server .
-Ứng dụng ejb được chia thành nhiều tầng nhiều lớp.

-Đầu tiên là tầng web đó là một ứng dụng bình thường.Sau đó được gửi đến tầng Web được phát triển servlet,JSP,JSF,Strust.Dưới tầng web là EJB để xử ly nghiệp vụ và cuối cùng là Database xủ lý dữ liệu.
-Nếu nó là trình duyệt thì nó sẽ phải gọi qua tầng web rồi mới đến được với Tầng Business để xử lí.nhưng nếu nó là aplication thì nó có thể truy xuất đến tầng web luôn mà không cần thông qua tầng Web.


III Ưu điểm EJB
-EJB  3.0 đơn giản hóa quá trình phát triển của các lập trinh viên bằng cách sử dụng các PoJO(đối tượng thuần java) và POJI(giao diện thuần java),Giúp cho các lập trình viên có thể viết các bean một cách dễ dàng mà chẳng khác gì viêt mọt classs hay mot interface đơn thuần
-Thay vì sử dụng xml để miêu tả các bean như trong EJB 2.1.EJB 3.0 sử dụng các anotation để miêu tả về các bean mot cách dễ dàng chẳng khác gì việc viêt một class  
-Khả năng phát triển EJB đơn giản 
-Nó ở dưới dạng component nên có khả năng tái sử dụng rât cao,nó được nhúng và chạy trong server và có khả năng hỗ trợ phát triển ứng dụng lớn
*phát triển EJB 
EJb contenner chạy trong server nên chúng ta không thể gọi trực tiếp đến EJB mà thông qua các contenner và vòng đời.

*Lợi ích EJB 
-quản lí vòng đời cho toàn bộ ứng dụng chúng ta.
-quản lí trạng thái EJB.
-quan lí giao dịch
-bảo mật.
*Vai Trò EJb 

-cung cấp bean .
-cung cấp contener quản lí bean đó
-cung cấp server để chạy
-Aplication assembler có nghĩa vụ đóng gói.
-Admin để quản lí toàn bộ quá trình chạy



Thứ Tư, 23 tháng 11, 2016

JSF

1.khái niệm
-jsf là java server faces.Nó là môi trường phát triển GUI như Swing hay AWT.Dùng để phat triển web một cách dễ dàng hơn
-JSF bao gồm:
+tập APi để phat triển UI.
+mọt số các component có sẵn.
+Hỗ trợ thư viện thẻ phong phú.
+Khả năng quản lí trạng thái tôt.
-Mục tiêu JSF 
+Tạo ra một bộ khung nhằm đơn giảm hóa việc phát triển giao diện.
+Tạo ra các lớp java cơ bản để quản lý các thành phần ,sự kiện của các thành phần và chu kì sống của nó trong giao diện.
+Cung cấp các thành phần GUi chung.
2.Kiến trúc JSF

+Giống như kiến trúc của MVC.
+Front Controller :la môt facesServlet  với vái trò như một người gác cổng.
Cấu trúc của JSF như dạng cây.Mỗi node la một component .FacesServlet có trách nhiệm dịch component sang ma HTML,WML 
+Các thành phần trên kêt hợp với Backend Model  để xứ lý sự kiện.
3:Thanh phần JSF
+UI Component
-Được sử dụng trong việc phát triển giao diện web
-Bao gồm các thành phần đơn giản như Buttom hay như dữ liệu table kết hợp chúng lại với nhau
-Thêm bơt các component một cách đơn giản.
-
+UI Componet Class
-Bao gồm các hàm xủ lý cho các UI component.
-JSF cung cấp cho chúng ta một bộ công cụ để xây dựng UI Componet Class
+Mo hinh Conversion
-Hỗ trợ cjo phép kêt hợp dữ liệu với mô hình Server-side.
-Hai thành phần của dữ liệu gồm:
+Model view
+Presentaion view
-thành phần của dữ liệu có thể convert  giữa model view và presentaion view.
+Renderer
-Hỗ trợ tính toán xử lý trình bày các các giá trị lên thành phần ui dể trình bày lên giao diện.
+Validators
-Hỗ trợ cơ chế kiểm tra dữ liệu trên các thành phần UI.Để dảm bảo rằng dữ liệu sẽ được nhập đúng và có ràng buộ theo yêu cầu của ứng dụng.
+Backinh Beans
-Bản chât của nó là javabean được dùng với các thành phần Ui interface-các phương thức hàm hỗ trợ trình bày giao diện người dùng,trao đổi dữ liệu với các thành phần khác trong ứng dụng,lưu trữ và chuyển xử lý khi người dùng tương tác
-Hỗ trợ xủ lí 3 khu vực khác như request,Session vaf aplication.Khu vực none chỉ là một javabean hay java object thông thường.
-Nó phải được đăng kí tệp tin cấu hình(faces-config.xml)để có thể tương tác
+event and listent 
-Đón nhận các sự kiện và xử lí các sự kiện.Có 4 loại sự kiện cơ bản
+Value-change events:xảy ra khi người dùng thay đổi giá trị component
+Action event:xảy ra khi người dùng kích hoạt component.
+Data-model event
+And phase events :xảy ra khi JSF xủ lí một Httprequest.
+Navigation
-cung cấp cơ chế để chuyển trang,chuyển xử lý trong quá trình thực hiện
+Message:
-hô trợ trình bày các thông tin về phía người dùng.Thông báo lỗi hay hỗ trợ đa ngôn ngữ.



Thứ Ba, 15 tháng 11, 2016

                      Servlet and JSP

1.Servlet

*Cấu trúc gia phả của servlet.

-Dưới đây là hình ảnh mô phỏng cho cấu trúc của servlet. 

*Class Object:là class cha của mọi class.và có một số phương thưc như:
+clone():
+equals();
+finalize();
+hashCode ():
+toString():
*Abstract GenericServlet
-Vì nó được kế thừa từ class Object nên nó cũng được kế thừa từ các phương thức của lớp object như trên.Ngoài ra nó cũng được kế thừa từ interface như Servlet,ServletConfig,Serializable    nên nó cũng được implement phương thức như:
puclic void init(ServletConfig con):nó được sử dụng để khởi chạy servlet.và chỉ được khởi tạo một lần cho đến khi kết thúc.
+ public abstract void service(ServletRequest request,ServletRespon respon   ):nó sẽ cung cấp các dịch vụ để xử lí request.Nó sẽ được gọi mỗi khi người dùng request tới servlet.
+ public void destroy ():chỉ được gọi một lần duy nhất trong vòng đời.và nó chỉ ra cho servlet bắt đầu destroy.
+public ServletConfig getServletConfig():Nó sẽ trả về đối tượng Servletconfig    
+public String getServletInfo():trả về thông tin của Servlet như Writer,version .. 
+ public ServletContext getServletContext:trả về đối tượng ServletContext.dùng để giao tiếp giữa các Servlet với nhau.
+ public String getInitParameter(String name):trả về giá trị của parameter  thông qua tên của parameter  đó
+ public Enumeration getInitParameterNames():trả về tất cả các parameter được định nghĩa trong web.xmf file.
public String getServletName():trả về tên của đối tượng Servlet đó
+ public void log(String msg):Đưa ra những tin nhắn trong servlet log file.
+public void log(String smg,Throwable t)giải thích message trong servlet log file và ngoại lệ
*Abstract HttpServlet:
*Được kế thừa từ lớp GenericServlet class nên nó cũng được kế thừa những phương thức lơp cha của nó.Và ngoài ra nó cũng cung cấp một số phương thức như:
+ protected void service (HttpServletRequest resquest,HttpServletRespon respon ):nhận request từ phương thức service,và chuyển tới request phương thức doXX() để thực thi dựa trên Http servlet type 
+protected void doGet( HttpServletRequest 
resquest,HttpServletRespon respon ) :xử lí những  Get request. được gọi bởi web container .

+protected void doPost( HttpServletRequest 
resquest,HttpServletRespon respon ) :xử lí những Post request. được gọi bởi web container .

+protected void doOptiones( HttpServletRequest 
resquest,HttpServletRespon respon ) :xử lí những Optiones request. được gọi bởi web container .
+protected void doHead( HttpServletRequest
 resquest,HttpServletRespon respon ) :xử lí Head request  thức. được gọi bởi web container .

+protected void doDelete( HttpServletRequest
 resquest,HttpServletRespon respon ) :xử lí  những Delete request. được gọi bởi web container .

+protected void doPut( HttpServletRequest
 resquest,HttpServletRespon respon ) :xử lí những Put request . được gọi bởi web container .

+protected void doTrace( HttpServletRequest
 resquest,HttpServletRespon respon ) :xử lí Trace request  thức. được gọi bởi web container .
*Class  Servlet:
-Được ké thừa toàn bộ các phương thức lơp cha của nó.như doGet(),doPost()...
2. Vòng đời Servlet
khi người dùng request lên server,server nhận yêu cầu qua (Http) nó sẽ gọi đến servlet container để xem servlet nào cần được xử lí.Khi load được servlet cần được xử lí..phương thức init sẽ được gọi:
init():kế thừa abstract Generic class.Nó dùng để khởi chạy servlet và chỉ được gọi một lần duy nhât cho đến khi kết thuc.
-sau khi phương thức init được gọi nó gọi đến phương thức service.phương thúc service sẽ nhận kiểu người dùng request qua (Http) sau đó gủi đến phương thức doX(để xủ lí.).mỗi khi người dùng request tới service thì servlet containet nó sẽ tạo ra một luồng để quản lí request đó.Nên một đối tượng servlet có thể phục vụ đa luồng.nếu servlet đã được khởi tao rồi thì tự đông lần sau web container tự đông gọi đến phương thức  service luôn mà không cần gọi qua init nữa()-
-sau khi gửi đễn phương thức doX() xử lí xong Web server sẽ trả lại nội dung cho người dùng yêu cầu.
-quá trình destroy xảy ra khi người dùng không còn tương tác web nữa.
2. Vòng đời JSP
-client request thông qua jsp translator biên dịch thành servlet file rồi compile thành file class.Sau đó khởi tao jsp thông qua phương thức init. rồi thông qua jsp servicve gọi đến phương thức doX() để thực thi và respon.
-quá trinh destroy xảy ra khi người dùng không còn tương tác với web nữa.
-cũng như servlet phương thức init()chỉ được khởi tạo một lần duy nhât và sau đó nó không gọi phương thức init nữa mà sẽ gọi thẳng đến jsp service luôn.  










 

Chủ Nhật, 13 tháng 11, 2016

Mô hình MVC

1,MVC là gì.

-MVC viết  tắt Model View Controller.Là một kiến trúc phần mềm hay mô hình thiết kế được sử dụng trong kĩ thuật phần phần.

*Model:Đây là thành phần chứa tất cả các nghiệp vụ logic,phương thức xử lí và truy xuất database,đối tượng mô tả dữ liệu như các class,hàm xử lý
*Controller:Giữ  nhiệm vụ nhận điều hướng các yêu cầu từ người dùng và gọi đúng những phương thức xử lý chúng..chẳng hạn như chúng sẽ nhận request từ url và form để thao tác trực tiếp với model.
*View:Đảm nhận việc hiển thị thông tin,tương tác với người dùng,nơi chứa tất cả các đối tượng GUI như textbox,images,thẻ JSP, thẻ JSF để thao tác với người dùng.
2,Luồng đi trong MVC
-Khi client request lên server thì controller sẽ nhận yêu cầu đó để xử lý,nếu cần thiết nó sẽ gửi đến bộ phận model,là bộ phận là việc trực tiếp với database.
- Nhận được thông điệp từ Model, View sẽ cập nhật lại thể hiện của mình, đảm bảo rằng nó luôn là thể hiện trực quan chính xác của Model. Còn Controller, khi nhận được thông điệp từ Model, sẽ có những tương tác cần thiết phản hồi lại người sử dụng hoặc các đối tượng khác
-Sau khi xử lý xong,toàn bộ kết quả sẽ được đẩy về phần view.Tại View sẽ gen ra các mã Html.hay JSP... và trả toàn bộ về trình duyệt để hiển thị
3,Ưu Và Nhược Điểm MVC

*Ưu  Điểm

-MVC làm cho ứng dụng trở nên trong sáng,giúp cho lập trình viên  phân tách ứng dụng thành 3 lớp một cách rõ ràng.Do được chia thành các 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ì.hướng tới sự lâu dài cho người sử dụng.
-Cho phép nhà phát triển và nhà thiết kế có thể làm việc cùng với nhau.

*Nhược  Điểm

-Đối với dự án nhỏ việc áp dụng mô hình MVC 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
-Luôn phải nạp với load thư viện khổng lồ nên rât chậm so với code thuần túy
-phải nắm chắc về lập trình đối tượng OOP,nên khó khăn với những ai OOP còn yếu.
4,Ví Dụ

-Đây là ảnh cho toàn bộ project.


-Xử lí Servlet 


-Index .jsp
-Welcom.jsp








Thứ Sáu, 11 tháng 11, 2016

                                    JavaEE

1:3_Layer và 3_Tier

*    3_Layer


-khái niệm.
  -3_layer:Nó có tính logic của một bài toán(mỗi layer lại có một công việc riêng) và là một thành                        phần của 3_Tier.Gồm 3 lớp chính :    _GUI
                                                                             _Business Logic
                                                                             _Data
   _GUI:là giao diện hay là các form  để thao tác người dùng
   _Business Logic Layer:Xủ lí các nghiệp vụ của chương trình như tính toán,xủ lí hợp lệ và toàn vẹn                                về mặt dữ liệu
   _ Data Access Layer:Tầng giao tiếp với hệ CSDL.
-Ưu điẻm
-dế dàng quản lí ứng dụng của mình,tạo môi trường làm việc tôt giữa người lập trình  và thiết kế giao diện 
-có khả năng tái sử dụng cao
-có thể thao tác trên các dữ liệu cơ bản như :Lít ,Array,Object.
-thao tác trên cơ sở dữ  liệu như truy vấn ,kết nối ,đóng

*   3_Tier 


-Khái niệm:nó có tính chât về vật lý.Là mô hình client-service (mỗi tier có thể đặt chung ở một nơi hay nhiều nơi được kết nối với nhau qua Webservice,WCF ,Remoting ).gồm 3 tầng rõ dệt dó là tâng Presentation tier, Business tier ,Data tier

Presentation tier :Bao gồm các thành phần xử lí về giao diện.
Bussiness tier :gồm các thành phần Business Logic Layer(BLL),Data Access Layer(DAL) và Data Tranfer Object(DTO).Được dùng để cung cấp các chức năng của phần mềm.
Data tier:Lưu trữ dữ liệu.

-Ưu điểm:dễ dàng mở rộng,thay đổi quy mô của hệ thống,khi cần tải lớn ,người quản trị có thể dễ dàng thêm các máy chủ vào nhóm hoặc lấy bớt ra trong trường hợp ngược lại

-Nhược điểm:Việc truyền dữ liệu giữa các tầng sẽ bị chậm hơn vì phải truyền giữa các tiến trình khác                 nhau ,dữ liệu cần phải được đóng gói để chuyển đi và mở gói trươc khi có thể dùng được


1:3 Tìm hiểu về JavaEE

*khái niệm:
-Java EE hay J2EE là  Java 2 Platform, Enterprise Edition.là một nền lập trình dành cho việc phát triển ứng dụng phân tán kiến trúc đa tầng, chủ yếu dựa vào các thành phần môđun chạy trên các máy chủ ứng dụng.
*Kiến trúc java EE,
J2EE nền tảng sử dụng một mô hình ứng dụng phân tán đa tầng.




_trong mô hình ứng dụng của java ee có  nhiều tầng:
  Tầng khách hàng(Client tier ) ,tầng web(Web tier ),tầng thương mại(Business tier ) và tầng hệ thống thông tin thương mại.(database tier ).Tầng thương mại và tầng web nằm trên một máy chủ  gọi là máy chủ ứng ứng(aplication server ) hay máy chủ JavaEE Server.
-Browser:(Web client ) tương tác web thong qua jsp servlet (web tier )
-Aplication Client:tương tac luôn với EJB luôn.
-JSP và JSF nó là Java Server Page and Java Server Face dùng để hiện thị tương tác giao diện với người dùng 
-Servlet nhận các request của người  dùng thông qua form và linh trên jsp hay jsf sau đó xử lí lấy giữ liệu về thông qua EJB. và  sau đó nó sẽ respon về lại cho client.
-Enterprise Bean (EJB)có trách nhiệm thao tác với cơ sở dữ .
-Database :nơi chứa dữ liệu.


  Java EE client:
  *quy trình
  - có hai loại khách hàng(Client) là :những khách hàng ứng dụng(application clients) và những khách hàng web(Web client ).Khách hàng web truy cập tới những thành phần trong tầng web là các lớp Java Servlet hay JSP(Java ServerPage ).Còn những khách hàng ứng dụng là những ứng dụng độc lập họ có thể truy cập trực tiếp tới các thành phần trong tầng thương mại.

  

-Applet:là một chương trình độc lập nhỏ viết bởi java cho những tác vụ cụ thể.chúng có thể được nhúng vào Web Page hoặc chạy độc lập.
-Java bean component quản lí các dữ liệu giữa ứng dụng của client và các component running on the java EE server và dữ liệu giữa server component và database  

 Web and Aplication Server 
   Web server 
  -Web server chứa web container bao gồm như JSP,Servlet ,JSF,Html
   -web server châp nhận request  của client thông qua web page và respon những request tới những trang thich hơp.giao tiếp giữa client và web service thông qua HTTP(Hyeper Text Transfer Protocol)
  Application server 
  -nó chứa cả web container và EJB container.Về giao tiếp thì như phần quy trình ở phần quy trình javaee client.

   
 Container
    chứa các component đi cùng với nhau  để cung cấp một vài dịch vụ tới aplication.
*Java EE có các loại container như:

+Web Container:được cài đặt trên javaee server.quản lí thực thi tất cả thành phần web như(Html ,JSP,Servlet ,JSF)
+EJB Container:được cài đặt trong java ê server .quản lí thực thi các thành phần ejb,
+Applet Container: quản lí các thực thi của applet(ứng dụng kí sinh)
+Application client Container:Quản lý sự thực thi các thành phần của ứng dụng client

*Các công nghệ được dùng trong javaEE
* Servlet và Java Server Pages(JSP) :công nghệ được dùng trong xây dựng các ứng dụng web 
* Java Database Connectivity(JDBC) API:là một tập hơp các giao diện cho phép các ứng dụng java truy cập vào cơ sở dữ liệu bât kì .
* Remote Method Invocation(RMI) :là một API cho phép các đối tượng java để giao tiếp từ xa với        các đối tượng khác.
* Java Mesage Service :cho phép các ứng dụng tạo gởi nhận và đọc các tin nhắn.
* Java Transaction API(JTA) :cho phép các ứng dụng JavaEE thực hiện quản lí chuyển giao trên ứng    dụng database 
* Java Mail:cho phép thành phần java gửi mail
* Java Persistence API(JPA):cho phép ánh xạ giữa 1 lớp java với các cột trong một bảng
* Java API cho xử lí XML :XML là một định dạng dữ liệu cho các tài liệu thay thế cấu trúc trên             web.JAXP cho phép các ứng dụng trong java phân tích và chuyển đổi tài liệu XML.