1. Trang chủ
  2. » Luận Văn - Báo Cáo

MVC architecture struts framework in java (J2EE)

51 1,1K 23
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 51
Dung lượng 1,01 MB

Nội dung

Tài liệu tham khảo công nghệ thông tin MVC architecture struts framework in java (J2EE)

Trang 1

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN CÔNG NGHỆ PHẦN MỀM

Y Z

Xây Dựng Phần Mềm Hướng Đối Tượng

Trang 2

Mục Lục

Phần I : Tổng quan ngôn ngữ java 4

1 Lịch sử phát triển của Java 4

2 Mục đích của Java 4

3 Đặc điểm của Java .4

4 Các loại chương trình trong java 5

5 Các thành phần của Java Environment 5

6 Các loại ứng dụng java .5

Phần II : Môi Trường Phát Triển Ứng Dụng Java 6

1 Khái niệm 6

2 Kiến trúc Eclipse 6

3 The Platform runtime 7

4 The workspace 7

5 The Workbench 7

6 Team support 7

7 Help 7

Phần III : Giới thiệu J2EE và các thành phần liên quan 8

1 Applet 8

2 JavaBean 9

3 JSP 10

4 Servlets 11

Phần IV : Kiến trúc MVC (Model _View_Controller) 13

1 Khái niệm 13

2 Mối quan hệ giữa View và controller 14

3 Mối quan hệ giữa Model và view 14

4 Các lợi điểm của MVC 15

5 Hạn chế của MVC 15

Phần V : Áp dụng kiến trúc MVC xây dựng ứng dụng triển khai thực tế 16

1 Qui trình thực hiện 16

1.1 View 16

1.2 Controller 17

1.3 Model 20

2 Triển khai ứng dụng 23

2.1 Cơ sở dữ liệu 23

2.2 Bố trí các tập tin trên Eclipse 23

2.3 Kết quả 24

Phần VI : Struts Framework .25

1 Struts 1.0 25

1.1 Khái niệm 25

1.2 Cấu trúc của Struts 26

1.3 Các thành phần chính của một ứng dụng Struts 27

1.4 Các file cấu hình cần thiết để xây dựng một ứng dụng Struts 27

1.5 Ưu điểm của Struts (so với MVC sử dụng RequestDispatcher) 28

1.6 Nhược điểm của Struts 28

2 Struts 2.0 29

Trang 3

Phần VI: Áp dụng kiến trúc MVC xây dựng ứng dụng triển khai thực tế 30

1 Qui trình thực hiện 30

1.1 Các trang hiển thị(View) 30

1.2.Action 37

1.3.Bean 40

1.4.Utils 46

1.5.Struts.xml 47

1.6.Build.xml 49

2 Triển Khai Ứng Dụng 50

2.1.Cơ sở dữ liệu 50

2.2 Bố trí các tập tin trên Eclipse 50

Website Tham Khảo

www.vietcore.net

¾

www.javavietnam.org

¾

www.sun.java.com

¾

www.apache.com

¾

www.manguon.com

¾

Trang 4

Phần I Tổng quan ngôn ngữ java

1 Lịch sử phát triển của Java

• Ra đời tại Sun Microsystems bởi James Gosling

• 1991: Version đầu tiên với tên “Oak”

• 1995: Tên chính thức là Java

2 Mục đích của Java:

• Dùng để phát triển ứng dụng cho các thiết bị điện tử “thông minh”

• Tạo các trang web có nội dung động (web applet)

• Hiện nay, Java được sử dụng để phát triển nhiều loại ứng dụng khác nhau: cơ sở dữ liệu, mạng, Internet, viễn thông

3 Đặc điểm của Java :

• Giống C/C++

• Đơn giản

• Object-oriented, hướng đối tượng

• Platform-independent, không phụ thuộc nền

Trang 5

Chương trình dịch trong java

4 Các loại chương trình trong java :

• Java/Sun class libraries

• Java Virtual Machine

• Structure of class files

6 Các loại ứng dụng java :

• J2SE : Java 2 Standard Edition (Dùng để phát triển các ứng dụng vừa và nhỏ)

• J2EE : Java 2 Enterprise Edition (Dùng để phát triển các ứng dụng lớn)

• J2ME : Java 2 Micro Edition (Dụng để phát triển các ứng dụng trên đtdd)

Trang 6

Phần II Môi Trường Phát Triển Ứng Dụng Java

1 Khái niệm :

™ Eclipse là phần mềm miễn phí, được các nhà phát triển sử dụng để xây dựng những ứng dụng J2EE, sử dụng Eclipse nhà phát triển có thể tích hợp với nhiều công cụ hỗ trợ khác để có được một bộ công cụ hòan chỉnh mà không cần dùng

đến phần mềm riêng nào khác.Eclipse SDK bao gồm 3 phần chính : Platform,

Java Development Toolkit (JDT), Plug-in Development Environment (PDE)

Với JDT, Eclipse được xem như là một môi trường hỗ trợ phát triển Java mạnh

mẽ PDE hỗ trợ việc mở rộng Eclipse, tích hợp các Plug-in vào Eclipse Platform

Eclipse Platform là nền tảng của toàn bộ phần mềm Eclipse, mục đích của nó là cung cấp những dịch vụ cần thiết cho việc tích hợp những bộ công cụ phát triển phần mếm khách dưới dạng Plug-in, bản thân JDT cũng có thể được coi như là

một Plug-in làm cho Eclipse như là một Java IDE (Integrated Development

Enviroment)

2 Kiến trúc Eclipse :

Trang 7

3 The Platform runtime :

• Công việc chính của Platform runtime là phát xem plug-in nào đang có

trong thư mục plug-in của Eclipse.Mỗi Plug-in đều có 1 tập tin Manifest liệt

kê những kết nối mà plug-in cần.Pug-in chỉ được tải vào Eclipse mỗi khi

thực sự cần thiết để giảm lượng tài nguyên yêu cầu và thời gian khởi tạo

4 The workspace :

• Workspace chịu trách nhiệm quản lý tài nguyên người dùng được tồ chức

dưới dạng Project Mỗi Project là một thư mục con trong thư mục

Workspace

• Workspace bảo quản cấp thấp lịch sử những sự thay đổi tài nguyên, tránh

thất thoát tài nguyên người dùng

• Workspace đồng thời chịu trách nhiệm thông bào những công cụ cấn thiết cho việc thay đổi tài nguyên

5 The Workbench :

• Workbench là giao diện đồ họa người dùng của Eclipse, gồm có Standard Widget Toolkit (SWT) và JFace Eclipse không hòan toàn bắt buộc phải sử dụng SWT hay Jface để lập trình giao diện, bạn vẫn có thể sử dụng AWT

hay SWING của Java thông qua việc cài đặt các Plug-ins

6 Team support :

• Trang bị hệ thống quản trị để quản lý dự án của người dùng : Concurrent Versions System (CVS)

7 Help :

• Cung cấp hệ thống tài liệu mở rộng, có thể là định dạng HTML hay XML

Cửa sổ chính của eclipse3.2

Trang 8

Phần III Giới thiệu J2EE và các thành phần liên quan

(Applet , JavaBean , JSP , Servlet , EJB)

Là 1 thành phần rất quan trọng và rộng lớn trong lĩnh vực java , J2EE được

dùng để phát triển các ứng dụng lớn mang tính chất phân tán rộng khắp Đây

là lĩnh vực được chú trọng và ứng dụng nhiều nhất của java trong thực tế

Sơ đồ các thành phần trong J2EE

1 Applet :

• là một chương trình Java chạy trên web browser

• Tất cả các applets phải là lớp con của lớp Applet hoặc JApplet

• Để tạo ra một applet, ta phải import:

Trang 9

Sự khác nhau giữa Applet và Application

• Applications chạy bằng Java interpreter, còn applets chạy trên browser có hổ trợ Java, hoặc dùng ‘AppletViewer’ có trong JDK

• Việc thực hiện một applications bắt đầu trong hàm ‘main()’ Còn applet thì

không cần hàm main

• Applications dùng ‘System.out.println()’ để xuất, trong khi applets dùng hàm

‘drawString()’ để hiển thị

Các hạn chế về Security trên Applets

• Không thể đọc hoặc viết các file trên hệ thống file của user

• Không thể trao đổi với một site trên

• Không thể chạy được các chương trình trên hệ thống hiện hành

• Không thể tải bất kỳ chương trình được lưu trữ trên hệ thống của user

2 JavaBean:

ƒ JavaBeans là software component model

ƒ Nó có thể tương tác với các đối tượng của các software khác và có thể được dùng lại

ƒ Các software components mà có thể dùng lại này được gọi là ‘beans’

ƒ Components được dùng trong distributed environments JavaBeans được thiết

kế để dùng khi cần

ƒ Java thường xây dựng các software thông qua các JavaBeans

ƒ Khi mà Java Beans được tạo ra, thì chúng có thể được dùng như một thư viện không phụ thuộc nền

Trang 10

Các qui tắc để tạo ra một Beans

3 JSP : (Java Server Pages)

ƒ JSP technology đươc xây dựng trên ngôn ngư lap trình Java

ƒ No thừa ke tat ca cac ưu điem cũng như cac đac tính cua ngôn ngư Java

ƒ JSP co the dung trên tat ca cac platforms

Cách làm việc của JSP

Các bước xử lý của 1 request

Trang 11

Cấu trúc của trang JSP :

Lịch sử của Web Application

Servlets đươc dùng để mở rộng các chức năng của Java-enabled server

Dùng để thay thế cho CGI Scripts

Trươc servlets, chung ta co cac công nghev đe tao ra web applications:

ƒ Common Gateway Interface (CGI)

ƒ FastCGI

ƒ ASP

ƒ Server-side Java Script

Chay trong Java Virtual Machine

Không bat buoc Web browser phai ho trơ Java

Đặc điểm Servels :

ƒ Không phu thuoc nen

ƒ Lam viec trên nhieu web servers

Trang 12

ƒ La công nghe đau tiên cua java đe tao ra web Application

ƒ Không nam trong core Java API ma nam trong hai package

javax.servlet va javax.servlet.http cua Java Servlet Development Kit (JSDK)

Kiến trúc Servlets

Vòng đời của 1 Servlet

Cấu trúc của 1 Servlet:

ƒ Là lớp con của lớp HttpServlet

ƒ Override phương thức doGet và doPost nếu cần Hai phương thức này đều nhận vào hai tham số HttpServletRequest và HttpServletResponse Hai phương thức này đều ném ra IOException và ServletException

Trang 13

Phần IV Kiến trúc MVC (Model _View_Controller)

1 Khái niệm :

Mô hình Model-View-Controller chia các components của ứng dụng thành 3 loại khác nhau đó là Model (mẫu), View (hiển thị), và Controller điều khiển) Các

components của mô hình MVC đảm nhận một trách nhiệm nhất định và mỗi

components đều độc lập với các components khác Việc thay đổi 1 components sẽ không ảnh hưởng hoặc ảnh hưởng rất ít đến các components khác Nhiệm vụ của các components này là:

ƒ Model (mẫu) : Model đảm nhận nhiệm vụ cung cấp dữ liệu từ cơ sở dữ

liệu và lưu các thông tin đó ở nơi chứa dữ liệu Tất cả cac Business Logic đều được thực thi ở Model Dữ liệu được nhập vào bởi người sử dụng qua View sẽ được kiểm tra ở Model trước khi được lưu vào cơ sở dữ liệu Truy xuất dữ liệu,sự hợp lệ của dữ liệu và data saving logic là các thành phần của Model

ƒ View (hiển thị) : View trình bày việc hiển thị của ứng dụng và nhận trách

nhiệm lấy dữ liệu từ người sử dụng, gửi các yêu cầu đến Controller rồi sau

đó nhận trả lời từ Controller và hiển thị kết quả đến người sử dụng HTML, JSPs, các thư viện Tag và các file nguồn là các phần của view component

ƒ Controller (điều khiển) : Controller là trung gian giữa Model và View

Controller có trách nhiệm nhận các yêu cầu từ Client Khi mà yêu cầu đuợc nhận từ Client,Controller sẽ thực thi business logic thích hợp từ Model và sau đó xuất ra dữ liệu cho user sử dụng View component ActionServlet, Action, ActionForm và struts-config.xml là các thành phần của Controller

Trang 14

Các mối quan hệ giữa các thành phần

2 Mối quan hệ giữa View và controller

ƒ Trong MVC truyền thống, các view và controller được kết hợp chặc chẻ với nhau Mỗi view được kết hợp với một controller duy nhất Controller được

xem như một Strategy (sự quản lý) mà view sử dụng cho đầu vào View cũng chịu trách nhiệm tạo ra các khung nhìn và controller mới

ƒ Có sự logic rằng các khung nhìn và các controller có quan hệ mạnh mẽ với

nhau, đầu vào và đầu ra của một ứng ụng được liên hệ chặc chẽ với nhau Hầu hết các nền GUI MVC, view và controller được trộn trong một đối tượng

Điều này được gọi là Document View View và controller được kết hợp thành view Model trở nên được biết như là tài liệu

ƒ Passive model luân phiên chiệu trách nhiệm nhiều hơn về controller, vì nó

phải thông báo cho các view khi nó có sự cập nhật

ƒ Sự hữu ích web hiện đại của MVC luân phiên thậm chí là nhiều hơn các MVC truyền thống về việc chiệu trách nhiệm của view đối với controller Controller chiệu trách nhiệm tạo ra và lựa chọn các view và view hướng đến việc chiệu trách nhiệm ít hơn đối với các controller của nó

3.Mối quan hệ giữa Model và view

ƒ View phụ thuộc vào model Các sự thay đổi đối với giao diện model đòi hỏi các sự thay đổi song song trong view

ƒ Thật khó để có được một sự tách biệt rõ rành giữa model và view Chẳng hạn như, xét một yêu cầu “hiển thị một cán cân âm bằng mầu đỏ” Đầu tiên cán

cân, điều này xuất hiện là yêu cầu đầu ra rõ ràng và sự kiểm tra có thể được đặt trong view theo một hình thức rõ ràng như sau:

if balance < 0 then red

ƒ Điều này có thể xâm phạm đến sự tách biệt của các thành phần trong MVC

ƒ Qua sự phân tích ở trên yêu cầu thực sự là “hiển thị sự cân bằng được cường điệu bằng mầu đỏ” và định nghĩa của cường điệu = cán cân < 0= nên được đặc trong model vì đó là thuộc về sự mô tả miền Thật dễ dàng cho tác nghiệp để chuyển ra của model và chuyển vào view

Trang 15

ƒ Mối quan hệ giữa model và controller

Controller phụ thuộc vào model Các sự thay đổi đối với giao diện model có thể yêu cầu sự thay đổi song song đối với controller

4 Các lợi điểm của MVC:

ƒ Giao diện người sử dụng có khả năng thay thế dễ dàng

ƒ Các view và các controller khác nhau có thể được thay đổi để đưa ra sự lựa

chọn các giao diện người sử dụng đối với cùng một model Chẳng hạn như,

cùng một dữ liệu model có thể được hiển thị bởi biểu đồ bar, hay biểu đồ pie, hoặc spreadsheet

ƒ Các thành phần hợp thành giao diện người sử dụng

ƒ Bởi vì MVC đòi hỏi giao diện người sử dụng ứng dụng được cấu trúc thành các đối tượng kế thừa nhau và định nghĩa các quan hệ chuẩn giữa các đối

tượng này, các phiên bản chung của các đối tượng này là có thể có được

ƒ Chúng thông thường được gọi là cá thành phần giao diện kết hợp với các view

và các controller thành một đối tượng đơn WACT là một sự nổ lực để đưa ra một tập các thành phần phong phú tương tự nhau đối với việc phát triển web

mà duy trì được sự tách biệt giữa view và controller Các thành phần thúc đẩy

sự sử dụng lại và cắt giảm sự cần thiết đối với các lớp con đặc biệt Các thành phần này được biết như là các view có khả năng cắm vào trong tuyến tính

smlltalk MVC

ƒ Nhiều view đồng thời của một model

ƒ Nhiều view khác nhau có thể hoạt động tại cùng một thời điểm Mỗi view mô

tả đồng thời và độc lập thông tin giống nhau từ một model Điều này áp dụng nhiều đối với GUI MVC hơn là web MVC

ƒ Các khung nhìn được đồng bộ hóa

ƒ Cơ chế truyền sự thay đổi đảm bảo rằng tất cả các khung nhìn có thể được

phản ứng một cách đồng thời trạng thái hiện tại của model

ƒ Dễ dàng hơn trong việc thay đổi giao diện người sử dụng

ƒ Sự kết nối chặc chẻ của view và controller đối với model

ƒ Sự thay đổi đối với giao diện model đòi hỏi sự thay đổi song song trong view

và có thể đòi hỏi sự thay đổi thêm đối với controller Sự thay đổi code nào đó

có thể trở nên khó khăn hơn

ƒ Tìm ẩn sự cập nhật dư thừa

ƒ Cơ chế truyền sự thay đổi có thể không hiệu quả khi model thay đổi thường xuyên đòi hỏi nhiều thông báo thay đổi Đây không phải là vấn đề chung nếu passive model được sử dụng

ƒ Sự kết nối chặc chẻ giữa view và controller

ƒ Sự tách biệt rõ ràng là rất khó, đôi khi là không thể

Trang 16

Phần V

Áp dụng kiến trúc MVC xây dựng ứng dụng

triển khai thực tế

Chương trình : Java WebMail

Minh họa cách thức đăng nhập hệ thống

Tổng quan ứng dụng:

™ Người dùng tương tác với các component Controller (thường được thể hiện bằng các Servlet) bằng cách gửi các yêu cầu cho nó Đến lượt mình, các component Controller tạo nên các thực thể (instatiate) component Model (thường được thể hiện bằng các JavaBean hoặc bằng công nghệ khác tương đương), và thao tác nó theo yêu cầu của ứng dụng Khi Model được khởi tạo, Controller sẽ quyết định chọn View (thường thể hiện bởi JSP) nào để trình bày kết quả đến người dùng, View này sẽ tương tác với Model để trình bày kết quả

< h1 > Please enter your information for login seminar about Java (J2EE) </ h1 >< br />

< form action = "controller?action=login" method = "post" >

Trang 17

™ Trang login.jsp để người dùng nhập vào username và password, thường gọi là trang JSP front-end Thông tin này được chuyển đến Controller Servlet, báo

controller triệu gọi actionlogin

< jsp:setProperty name = "user" property = "path"

value =" <%= application.getRealPath( "/members.mdb" ) %> " />

< h1 > Welcome < jsp:getProperty name = "user" property = "name" /></ h1 >

request bởi Controller, như chúng ta sẽ thấy sau Tuy nhiên, ở đây ta cũng thiết lập thuộc tính path của JavaBean để minh họa việc dùng đối tượng ẩn application

Thuộc tính path chỉ ra vị trí thực của cơ sở dữ liệu Access mà ta truy xuất bằng

Trang 18

// forward trang ke tiep bang giao dien RequestDispatcher

RequestDispatcher

Trang 19

public String execute( HttpServletRequest req, HttpServletResponse res )

{

String username = req.getParameter( "username" );

String password = req.getParameter( "password" );

// Tao mot UserBean

try

{

UserBean user = new UserBean();

// Thiet lap cac thuoc tinh cua UserBean, co the thiet lap ca thuoc tinh path o day user.setUser( username );

Trang 20

™ Phương thức execute() của lớp LoginAction tạo (instantiate) một đối tượng

Model mới (UserB e an), đặt nó vào trong Session, và trả về đường dẫn đến trang kế tiếp tức welcome.jsp Chú ý phần Controller này sẽ thiết lập các thuộc tính cho

JavaBean, nếu ở đây dùng trang JSP thì sẽ có action jsp:setProperty

private String user = "";

private String password = "";

private String name = "";

private String path = "";

Trang 21

Connection connect = DriverManager.getConnection

("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};"

Trang 22

Xây dựng tập tin build.xml để đóng gói ứng dụng ra định dạng war dạy trên

tomcat

Build.xml

<?xml version="1.0"?>

<project name= "mvc_thien" default= "all" basedir= "." >

<property name= "src.home" value= "${basedir}/src" />

<property name= "dist.home" value= "${basedir}/dist" />

<property name= "lib.home" value= "${basedir}/web/WEB-INF/lib" />

<property name= "web.home" value= "${basedir}/web" />

<property name= "database.home" value= "${basedir}/database" />

<property name= "build.home" value= "${basedir}/build" />

<property name= "build.classes.dir" value= "${build.home}/classes" />

<property name= "src.resources" value= "${basedir}/src/resources" />

<property name= "websrc.dir" value= "${basedir}/pages" />

<property name= "tomcat.home" value= "C:\Program Files\Apache Software Foundation\Tomcat

5.0" />

<! Build classpath >

<path id= "compile.classpath" >

<fileset dir= "${basedir}/web/WEB-INF/lib" >

<include name= "servlet-api.jar" />

</fileset>

<pathelement location= "${build.classes.dir}" />

</path>

<target name= "prepare" >

<mkdir dir= "${build.home}" />

<mkdir dir= "${dist.home}" />

</target>

<target name= "compile" depends= "prepare" description= "Compile Java sources" >

<javac srcdir= "${src.home}"

<copy todir= "${build.home}" >

<fileset dir= "${src.home}" excludes= "**/*.java" />

</copy>

</target>

<target name= "dist" depends= "compile" description= "Create binary distribution" >

<war destfile= "${dist.home}/${ant.project.name}.war" webxml=

"${web.home}/WEB-INF/web.xml" >

<webinf dir= "${web.home}/WEB-INF" />

<lib dir= "${lib.home}" />

<classes dir= "${build.home}" />

<fileset dir= "${web.home}" includes= "*.*" />

<fileset dir= "${database.home}" includes= "*.*" />

</war>

</target>

Trang 23

<fileset dir= "${dist.home}" >

<include name= "${ant.project.name}.war" />

</fileset>

</copy>

</target>

<target name= "all" depends= "compile" >

<war warfile= "${build.home}/mvc.war" webxml= "${src.resources}/web/web.xml" >

<fileset dir= "${basedir}/database" />

<fileset dir= "${websrc.dir}" />

<classes dir= "${build.classes.dir}" />

</war>

</target>

<target name= "clean" >

<delete dir= "${build.home}" />

</target>

</project>

2 Triển khai ứng dụng :

2.1 Cơ sở dữ liệu

Cơ sở dữ liệu Access: members.mdb có một bảng accounts

2.1 Bố trí các tập tin trên Eclipse :

Trang 24

2.3 Kết quả:

Trang 25

Phần VI Struts Framework

Struts thực thi mô hình MVC

™ Mô hình Struts Framework thực thi mô hình MVC bằng cách sử dụng tập hợp các thẻ JSP, các thẻ tùy chọn JSP (custom JSP tag), và các Java servlet Dưới đây chúng ta sẽ mô tả ngắn gọn cách mà Struts Framework ánh xạ đến mỗi thành phần trong mô hình MVC

9 Hình trên mô tả tiến trình mà hầu hết các ứng dụng Struts phải tuân theo

Tiến trình này có thể được chia thành 5 bước căn bản:

1 Request được tạo ra từ một View

2 Request được tiếp nhận bởi một ActionServlet (đóng vai trò là một

Controller), và ActionServlet này sẽ lookup URI cần thiết trong file XML

và xác định tên của lớp Action sẽ thực hiện các bussiness logic cần thiết

Ngày đăng: 23/11/2012, 13:46

HÌNH ẢNH LIÊN QUAN

Sơ đồ các thành phần trong J2EE - MVC architecture struts framework in java (J2EE)
Sơ đồ c ác thành phần trong J2EE (Trang 8)
Mô hình Model-View-Controller chia các components của ứng dụng thàn h3 loại khác nhau đó là Model (mẫu), View (hiển thị), và Controller  điều khiển) - MVC architecture struts framework in java (J2EE)
h ình Model-View-Controller chia các components của ứng dụng thàn h3 loại khác nhau đó là Model (mẫu), View (hiển thị), và Controller điều khiển) (Trang 13)
Cơ sở dữ liệu Access: members.mdb có một bảng accounts - MVC architecture struts framework in java (J2EE)
s ở dữ liệu Access: members.mdb có một bảng accounts (Trang 23)
2. Triển khai ứng dụng: - MVC architecture struts framework in java (J2EE)
2. Triển khai ứng dụng: (Trang 23)
Struts thực thi mô hình MVC - MVC architecture struts framework in java (J2EE)
truts thực thi mô hình MVC (Trang 25)
• Java framework để phát triển các ứng dụng web theo mô hình MVC. - MVC architecture struts framework in java (J2EE)
ava framework để phát triển các ứng dụng web theo mô hình MVC (Trang 29)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w