Tải bản đầy đủ (.pdf) (21 trang)

ôn tập java học web nhanh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (940.96 KB, 21 trang )

ÔN TẬP JAVA

Nhóm xxx Page 1

Câu 1. Web Server là gì? Bỏ
Web Server là máy chủ có dung lượng lớn, tốc độ cao, được dùng để lưu trữ thông tin
như một ngân hàng dữ liệu, chứa những website đã được thiết kế cùng với những
thông tin liên quan khác. (các mã Script, các chương trình, và các file Multimedia). Bất
kỳ một máy tính nào cũng có thể trở thành một Web Server bởi việc cài đặt lên nó một
chương trình phần mềm Server Software và sau đó kết nối vào Internet.
Ví du: Apache HTTP Server

Vai trò Web Server:
- Cung cấp nội dung HTML về browser
- Lưu trữ, phục vụ yêu cầu truy xuất đến các trang Web thông qua các giao thức
- Xử lý yêu cầu của trình duyệt gửi tới
- Khi một người sử dụng tại một địa chỉ IP yêu cầu một file, Web server cố tìm file
đó và gửi lại cho người sử dụng. file yêu cầu có thể là mã HTML, ảnh GIF, file
AVI
- Web server trả trang yêu cầu không quan tâm trang đó là gì và nội dung của nó ra
sao. Nếu có lỗi cú pháp, các lỗi này sẽ được trả về.
- Một vài Web server hỗ trợ các đặc điểm cao cấp là xử lý các trang Web
Câu 2.Web browser là gì? Bỏ
- Phần mềm hiển thị nội dung các trang Web, được viết bằng html,gởi yêu cầu lên
webserver để lấy một trang HTML về.
- Có rất nhiều trình duyệt web khác nhau như Internet Explorer, Mozila Firefox,
Opera, Netscape…
- Mỗi phần mềm trình duyệt đều có các phiên bản khác nhau, phiên bản mới nhất là
phiên bản có nhiều tính năng hơn các phiên bản trước đó.
Vai trò của nó
- Trình duyệt web dùng để giao tiếp với web server qua giao thức HTTP.


- cho phép người sử dụng truy cập và xem các tài liệu HTML.















ÔN TẬP JAVA

Nhóm xxx Page 2



Câu 3.Phân biệt GET và POST






























Câu 4.Servlet (Web) container là gì?Liệt kê những chức năng servlet container
cung cấp

Servlet không có hàm main ,chịu sự điều khiển của ứng dụng java khác gọi là
container. Container là trung gian giữa các web server và các servlets trong container
Khi ứng dụng web (như Apache) nhận được một yêu cầu cho một servlet ,các server
không chuyển các yêu cầu này đến servlet mà lại chuyển đến các container. Container
trả http request và http reponse cho servlet, và container đó gọi các phương thức của

servlet(như doPost () hoặc doGet)
-Một servlet container nổi tiếng là tomcat.

GET
POST
Dữ liệu gửi lên server là một
phần trong URL,chưa an toàn

Dữ liệu có giới hạn về kích
thước

Có thể sử dụng HTML Form
hoặc Hyperlink để gửi dữ liệu
đến server

Có nhiều chức năng: nhận,
lưu trữ, sửa đổi,bổ sung vào
cơ sở dữ liệu

Có Cacheable=>thực thi
nhanh hơn POST
Ứng với cùng 1 yêu cầu đó
webbrowser sẽ xem trong
cached có kết quả tương ứng
với yêu cầu đó ko và trả về
ngay không cần phải thực thi
các yêu cầu đó ở phía server
Dữ liệu không gắn vào URL
nên không hiển thị trên
URL.Bảo mật hơn ,an tòan

hơn
Dữ liệu gửi có kích thước
không giới hạn
Dữ liệu được gửi đến server
thông qua HTML Form


Tốt nhất sử dụng cho việc
nhận dữ liệu


Không cacheable.

server luôn thực thi và trả về
kết quả cho client


ÔN TẬP JAVA

Nhóm xxx Page 3





Liệt kê những chức năng servlet container cung cấp
- Hỗ trợ giao tiếp:Servlet cung cấp 1 cách đơn giản để cho các servlet nói chuyện
với các web server mà không cần tạo ra một ServerSocket lắng nghe ở por,tạo
các stream. Container hiểu giao thức ở giữa web server và nó.
- Quản lí chu kì sống của servlet :Container điểu khiển chu kì sống của servlet,

load các class,khởi tạo các đối tuợng servlet,gọi các phương thức servlet và làm
cho các đối tuợng servlet dọn dẹp các dữ liệu rác.Không lo việc quản lí tài nguyên
- Hỗ trợ multithread : Container tự động tạo và quản lý các thread khi cần thiết để
xử lý các yêu cầu(request). . Container có thể xử lý đồng thời nhiều request
- Khai báo an tòan: Có thể quản lí , thay đổi độ an tòan mà không bị ảnh huởng và
biên dịch lại mã mã nguồn java.
- Hỗ tợ JSP: chuyển mã JSP sang mã java
 Mỗi Web application phải bao gồm một thư mục WEB-INF:
web.xml: file cấu hình
Thư mục classes
Thư mục lib









ÔN TẬP JAVA

Nhóm xxx Page 4



Câu 5. Hãy trình bày chu kỳ sống của một servlet.

Hoạt động của các servlet được kiểm soát bởi server
Server nạp và khởi tạo một servlet

.Tạo một thread để thực thi servlet
public void init()
Được gọi thực thi 1 lần duy nhất khi khởi tạo servlet (lần đầu tiên khi nạp vào bộ
nhớ)
Dùng để khởi tạo trạng thái, mở file, thiết lập kết nối CSDL, …

Servlet có thể xử lý nhiều yêu cầu đồng thời
public void service()
Được gọi thực thi để phục vụ các yêu cầu của client, Nó có thể không gọi, gọi
một lần hay nhiều lần cho đến khi servlet được ngưng tải. Nhiều thread (mỗi yêu
cầu) có thể thực thi phương thức này song song, vì thế nó trở nên an toàn

Server kết thúc hoạt động của một servlet
public void destroy()
Được gọi thực thi 1 lần duy nhất để hủy một servlet
Giải phóng tài nguyên (khi stop web server)















ÔN TẬP JAVA

Nhóm xxx Page 5



Câu 6 : Hãy trình bày quá trình xử lý thực thi một tập tin JSP trên web container
để phục vụ yêu cầu của client lần đầu tiên


















Bước 1: Web Container đọc file web.xml của ứng dụng và chờ request của client
Bước 2:Client click vào link, gửi request tới Web Container. Web Container dịch file
MyJSP.jsp thành file MyJBước 1: Web Container đọc file web.xml của ứng dụng và chờ
request của client

Bước 3: Web Container biên dịch file MyJSP_jsp.java thành file MyJSP_jsp.class
(Servlet
Bước 4: Web Container load Servlet class mới tạo ra (MyJSP_jsp.class).
Bước 5: WebContainer chạy phương thức jspInit(), Servlet class vừa tạo ở bước trên
đã trở thành một Servlet đầy đủ, sẵn sàng nhận request từ client
Bước 6: Web Container tạo một thread để phục vụ các request từ client và chạy
phương thức _jspService(). Servlet được thực thi ở Server và trả kết quả về client
(hoặc chuyển request đến phần khác của web app).

Câu 7 : Hãy phân biệt ý nghĩa của thẻ chỉ thị <%@include file=” ”%> và thẻ thực
thi <jsp:include page= ” ” />

<%@include file=” ”%>
Mang tính chất tĩnh(Static): lấy nội dung từ một giá trị thuộc tính file vào trang hiện tại
ở thời điểm biên dịch( transaction time)

<jsp:include page= ” ” />

Web
Browser
Web Server



JSP
Servlet
CSDL
Java Application/
Web Service
ÔN TẬP JAVA


Nhóm xxx Page 6

Mang tính chất động(dynamic): lấy nội dung từ một giá trị thuộc tính page vào trang
hiện tại ở thời điểm yêu cầu (request time)


Câu 8: So sánh và trình bày mối tương quan giữa JSP và servlet
Giống nhau:
Servlets and JSP là các API hỗ trợ, cung cấp phương thức tạo ra nội dung web động.

Khác nhau:

JSP
Servlet
- JSP là server script được chạy
trên nền JDK 1.3 về sau.

- Hoạt động như một lớp giao
diện trung gian giữa người dùng
với server


- Servlet là các chương trình chạy
trên máy server (servlet
container)

- Hoạt động như là lớp trung gian
giữa máy client (với các yêu cầu
HTTP) và CSDL hoặc các ứng

dụng khác
ÔN TẬP JAVA

Nhóm xxx Page 7






















Tương quan giữa servlet và JSP:
Các trang JSP được trình chủ dịch ra thành Servlet trước khi cho thực thi nên tất cả
những gì Servlet làm được cũng đồng nghĩa với JSP làM được. Tuy nhiên sử dụng
JSP hay Servlet hay cả hai tùy thuộc vào từng dự án và mục đích sử dụng của chương

trình.












Câu 9 : Hãy trình bày so sánh tương quan giữa Cookie và Session
Hãy trình bày so sánh tương quan giữa Cookie và Session :
Giống nhau : Đều được dùng với mục đích lưu các thông tin của một đối tượng truy
nhập (người sử dụng) trong một phiên làm việc.
- JSP hỗ trợ phát sinh nội dung
động vào trong một tài liệu
HTML bằng các câu lệnh Java
được nhúng vào trong một tài
liệu HTML bằng các thẻ đặc biệt
- Hướng tài liệu

- Phát sinh nội dung động HTML
động (JSP)



- Như một chương trình Java

- Trình bày dữ liệu
- Xử lý nghiệp vụ
- View layer
- Cấu trúc chương trình: dùng các
thẻ
- Controller layer
- Cấu trúc chương trình là một
class
ÔN TẬP JAVA

Nhóm xxx Page 8

Liên hệ giữa Session và Cookie: Mỗi Session gắn với 1 định danh (ID). ID sẽ được
tạo ra trên server khi session bắt đầu và được truyền cho browser. Sau đó browser sẽ
truyền lại ID này lên server mỗi khi truy cập vào website. Như vậy ta có thể thấy rằng
sẽ rất tiện nếu như Session ID được lưu trữ trong Cookie và được browser tự động
truyền lên server mỗi khi truy cập vào website.
Khác nhau:

Cookies
Session
Cookie sẽ được lưu trữ tại browser,
do browser quản lý và browser sẽ tự
động truyền cookie ngược lên
server mỗi khi truy cập vào 1 trang
web trên server.
Dữ liệu lưu trữ trong Session sẽ
được ứng dụng quản lý, trong ngữ
cảnh web, ứng dụng ở đây sẽ là
website và webserver. Browser chỉ

truyền ID của session lên server mỗi
khi truy cập vào website trên server.
Cookies không phải là một đối
tượng riêng biệt mà thuộc đối
tượng Response.

Session là một đối tượng riêng
biệt thuộc lớp
javax.serverlet.http.HttpSession


ÔN TẬP JAVA

Nhóm xxx Page 9

BỏCâu 10 :Hãy trình bày hiểu biết của anh chị về J2EE/JavaEE Server
(J2EE/JavaEE server là gì? Kiến trúc ? Vai trò của từng thành phần?)
Java EE (gọi tắt là J2EE) 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.
Mô hình kiến trúc đa tầng :



Vai trò của các thành phần trong JavaEE :
Java Application – component này là 1 chương trình standalone chạy bên trong
Application Client container. Application Client container cung cấp những API hỗ trợ
cho messaging, remote invocation, database connectivity và lookup service.
Application Client container đòi hỏi những API sau: J2SE, JMS, JNDI, RIM-IIOP và
JDBC. Container này được cung cấp bởi nhà cung cấp application server

• Applet – Applet component là java applet chạy bên trong Applet container, chính
là web browser có hỗ trợ công nghệ Java. Applet phải hỗ trợ J2SE API.
• Servlet và JSP – đây là Web-based component chạy ở bên trong Web container,
được hỗ trợ bởi Web Server. Web container là một môi trường run-time cho servlet
và jsp. Web Container phải hỗ trợ những API sau: J2SE, JMS, JNDI, JTA, JavaMail,
JAF, RIM-IIOP và JDBC. Serlet và JSP cung cấp một cơ chế cho việc chuẩn bị, xử
lý, định dạng nội dung động
• Enterprise JavaBean (EJB) – EJB component là business component chạy bên
trong EJB container. EJB component là phần nhân, cốt lõi của ứng dụng J2EE. EJB
container cung cấp các dịch vự quản lý transaction, bảo mật, quản lý trạng thái,
quay vòng tài nguyên (resource pooling). EJB container phải hỗ trợ những API sau:
J2SE, JMS, JNDI, JTA, JavaMail, JAF, RIM-IIOP và JDBC.

Câu 11 : Hãy trình bày hiểu biết của anh/chị về kiến trúc ứng dụng đa lớp

Kiến trúc đa tầng là một kiểu kiến trúc client-server, trong đó trình bày các ứng dụng,
xử lý và quản lý dữ liệu logic là các quá trình riêng biệt.
ÔN TẬP JAVA

Nhóm xxx Page 10

Phổ biến rộng rãi nhất trong việc sử dụng "nhiều tầng kiến trúc" là đề cập đến ba
tầng kiến trúc
- Tầng trình bày (presentation): chứa các cấu phần xử lý giao diện người dùng
và tương tác với người dùng. Chẳng hạn như một tầng trình bày của một ứng
dụng độc lập có thê viết trong Visual Basic. Tầng trình bày của một ứng dụng
Web-based có thể sử dụng Java servlet, Java Server Page, hay kết hợp với
Java Applet
- Tầng logic nghiệp vụ (bussiness logic): chứa các cấu phần phối hợp với
nhau đê giải quyết các vấn đề nghiệp vụ. Thông thường, các cấu phần này được

viết bằng các ngôn ngữ type-safe như Java hay C++.
- Tầng dữ liệu (data): được sử dụng bởi tầng logic nghiệp vụ để lưu trữ các
trạng thái bền vững. Tầng này thường là một hay nhiều database
Đặc điểm :
- Chi phí chuyển đổi CSDL thấp
- Chi phí nâng cấp logic dữ liệu thấp: không phải biên dịch lại client
- Có thể bảo mật từng phần của triển khai với các firewall
- Các tài nguyên có thể được pool và re-used
- Mỗi tầng có thể thay đổi độc lập.
- sai Sự thể hiện chậm chạp được cục bộ hoá
- Các lỗi được cục bộ hoá: chẳng hạn như nếu application server hỏng thì web
server có thể báo cho người dùng là “site down”
- Chi phí giao tiếp cao giữa các tầng
- Chi phí bảo trì cao

Câu 12 : Hãy trình bày hiểu biết của anh/chị về mô hình MVC (Kiến trúc? Vai
trò của từng thành phần trong mô hình)















Nó được dùng để tách riêng một ứng dụng vào lớp riêng chạy trên các máy tính
khác nhau: trình bày / giao diện người dùng (UI) (View), kiểm soát xử lí yêu
cầu(Controller), và truy cập dữ liệu (Model).
MVC là thường thấy trong các ứng dụng web, nơi mà the view là trang mã HTML
hoặc XHTML, và the controller là mã dữ liệu động và tạo ra nội dung động bên trong
HTML hay XHTML. Cuối cùng, the model được thể hiện bằng nội dung thực, mà
ÔN TẬP JAVA

Nhóm xxx Page 11

thường được lưu giữ trong một cơ sở dữ liệu hoặc trong XML nodes, và các luật
kinh doanh chuyển đổi nội dung dựa trên hoạt động người sử dụng.



Vai trò của từng thành phần trong mô hình
Model: Business Logic Layer
- Thực hiện các truy vấn CSDL
- Thực hiện các thao tác nghiệp vụ / tính toán
View: Presentation Layer
- Trình bày dữ liệu của một model

Controller: Control Layer
- Tiếp nhận yêu cầu từ người dùng và quyết định cơ chế xử lý yêu cầu đó
- Kết nối yêu cầu của người dùng với thao tác nghiệp vụ tương ứng
- Lựa chọn cơ chế trình bày kết quả (view)

Câu 13 : Hãy trình bày hiểu biết của anh/chị về JavaBean thu gọn lại
 Java Bean là gì ?

- Java Beans là các thành phần có thể sử dụng lại
- Dùng để tách biệt business logic và presentation logic
- Bean thường được tạo ra trong quá trình xử lý business để lưu dữ liệu và được
chuyển cho lớp xử lý trình bày để hiển thị dữ liệu
- Bean = instance của một class

 Cấu trúc của Bean:
- Java Bean là một class trong Java được thiết kế theo một số nguyên tắc:
+ Mỗi thuộc tính trong Bean đều phải có phương thức set/get hoặc chỉ set
hoặc chỉ get
+ Tên phương thức set/get trong Bean phải đặt theo mẫu:
set<Tên-thuộc-tính>(<parameters>)
get<Tên-thuộc-tính>()/is<Tên-thuộc-tính>()
Ví dụ: thuộc tính là name có phương thức tương ứng là getName().
Tên thuộc tính bắt buộc chỉ hoa viết ký tự đầu tiên
+ Phải cài đặt phương thức khởi tạo mặc định

 Bean scope:
- page: chỉ tồn tại trong trang đang xử lý
- request: tồn tại theo request, được gắn theo request
- session: tồn tại trong suốt một phiên làm việc, được gắn vào vùng nhớ session
- application: tồn tại trong suốt quá trình hoạt động của một ứng dụng

 Trong Java Server Page, sử dụng Java Bean đem đến một số lợi điểm như
sau:
- Không còn các cú pháp Java, tách biệt hẳn phần xử lý logic với phần trình
bày giao diện. Từ đây ta có thể có một nhóm phát triển ứng dụng web gồm
2 nhóm nhỏ: lập trình Java và thiết kế web.
ÔN TẬP JAVA


Nhóm xxx Page 12

- Việc chia sẻ đối tượng (object) đơn giản hơn. Ta sẽ dễ dàng chia sẻ các
đối tượng giữa nhiều trang jsp hoặc giữa các request hơn.
- Sự thuận tiện trong truy xuất các request parameter. Java Bean đơn giản
tối đa quá trình đọc các request parameter, chuyển chúng từ kiểu chuổi
sang kiểu dữ liệu thích hợp rồi chuyển thành thuộc tính tương ứng trong
đối tượng.

 Để sử dụng Java Bean trong JSP ta dùng một trong 2 khai báo sau:
Khai báo sử dụng một bean có tên là object-name, class của bean này là gì.
Nếu như không tồn tại một bean nào có id và scope tương tự như khai báo, thì
bean sẽ được tạo mới.

<jsp:useBean id="object-name"
scope="page | request | session | application"
type="type-of-object"
class="fully-qualified-classname“ />
Hoặc

< jsp:useBean id="object-name"
scope="page | request | session | application"
type="type-of-object"
class="fully-qualified-classname“>
<jsp:setProperty />
</jsp:useBean>

 Cách để set giá trị một thuộc tính của bean.

<jsp:setProperty name="id-of-the-JavaBean"

property="name-of-property"
param="name-of-request-parameter-to-use"
value="new-value-of-this-property" />
param chính là tham số trong request dùng để lấy giá trị gán cho property.
 Cách lấy giá trị lưu trữ trong thuộc tính của bean.
<jsp:getProperty name="id-of-the-JavaBean property="propertyName" />

Câu 14: Phân biệt JavaBean và Enterprise JavaBean (EJB bỏ

JAVABEAN
EJB
ÔN TẬP JAVA

Nhóm xxx Page 13

Câu 15 : Phân biệt cơ chế (phương thức) forward() và include() trong quá trình
phân phối yêu cầu (sử dụng RequestDispatcher). Cho ví dụ minh họa về cách
lập trình


Ví dụ : quá tệ
foward()
public class RequestBinder extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response){
//bind an object to the servlet context
ContextObject contextObj = new ContextObject();
contextObj.put( request.getRemoteAddr(), ""+new java.util.Date());
request.setAttribute(
"com.jspservletcookbook.RequestObject",contextObj );


//better display something
- Cài đặt ở cả server site và client
site
- Dùng để tách biệt business logic

- Môi trường hoạt động: JVM hoặc
servlet container.
- Bản thân java bean không thể tự
hỗ trợ các chức năng Transaction
và Security cho ứng dụng. Người
lập trình phải viết code cho các
chức năng này nếu muốn.


- JavaBean chỉ để phát triển
- Cài đặt ở server site
- Đảm nhiệm thực thi business
logic và presentation logic
- Môi trường hoạt động: EJB
container.

- EJB containter hỗ trợ các dịch vụ
Transaction và Security và chỉ có
EJB API mới sử dụng được các
dịch vụ này, điểu này đơn giản
hóa các thao tác phức tạp mà
người lập trình đáng lẽ phải làm.

- EJB để phát triển và triển khai
trên EJB container.





forward()
- Để chuyển hoàn toàn điều khiển đến
trang đích.
- Có IlltergalstaleException.
- Trước khi forward không được xử lý
gì về nội dung(nghĩa là không được
print() bất kì cái gì ra màn hình).
- Servlet cuối cùng mới được xử lý nội
dung.

include()
- Để nhận kết quả trả về từ trang đích
và tiếp tục xử lý.
- Không có IlltergalstaleException.
- Trước hay sau khi include đaều
được xử lý nội dung

- Có thể xử lý ở bất kì servlet nào.



ÔN TẬP JAVA

Nhóm xxx Page 14

RequestDispatcher dispatcher = request.getRequestDispatcher("/displayAttr");

dispatcher.forward(request,response);
}
}

Include()
public class MultipleInc extends HttpServlet{
protected void doGet(HttpServletRequest request, HttpServletResponse response){
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("This text is displayed at Level 1.");
RequestDispatcher dispatcher = request.getRequestDispatcher("/level2");
dispatcher.include(request, response);
}
}





Câu 16. Phân biệt kỹ thuật REDIRECT và REQUEST DISPATCH

REDIRECT
REQUEST DISPATCH
- Redirect gửi tín hiệu yêu cầu trình
duyệt truy cập một url khác để
hoàn thành tác vụ.

- Người dùng thấy sự thay đổi URL
trên trình duyệt khi thực hiện tác
vụ

- Request dis. phân phối yêu cầu
đến một số đối tượng trên server
(servlet, jsp) để hoàn thành tác
vụ
- Người dùng không thấy sự thay
đổi URL trên trình duyệt và không
biết server làm gì







Câu 17. Phân biệt các phạm vi lưu trữ (scope) JavaBean: REQUEST, SESSION,
APPLICATION. Cho ví dụ minh họa cơ chế lưu trữ một đối tượng JavaBean
vào các vùng lưu trữ tương ứng.
Phạm vi lưu trữ (scope) JavaBean :
Request
Session
Application
- Tồn tại theo request từ
phía client, được gắn
theo request

- Tồn tại trong suốt một
phiên làm việc, được
gắn vào vùng nhớ
session
- Tồn tại trong suốt quá

trình hoạt động của một
ứng dụng

-->

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×