1. Trang chủ
  2. » Công Nghệ Thông Tin

Câu hỏi và trả lời ôn tập Java

11 2K 15
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

Tiêu đề Ôn Tập Java
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Phần Mềm
Thể loại Tài Liệu Ôn Tập
Năm xuất bản 2023
Thành phố Hồ Chí Minh
Định dạng
Số trang 11
Dung lượng 397 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Câu hỏi và trả lời ôn tập Java

Trang 1

Chú thích sau khi thay đổi: bỏ Web Browser, Web Server ( Thầy nói ko ra mà cũng hên xui quá

^^), Java Bean, Enterprise Java Bean

Câu 4: apache ko phải là ứng dụng Web.

Câu 8: đúng + đầy đủ nhưng Scrip thực thi ở Server tôi ( Thangld) ko bik đó là gì, ko biết người soạn câu này lấy ở đâu ra.

Câu 10 : bỏ và Câu 14: bỏ

Câu 11: dc, có những câu dịch chuối quá như câu “ biểu hiện”

Câu 17: là câu ôn tập, khi đó tui sẽ cho so sánh 2 trong 3.

Câu 20: perfect.

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

Dữ liệu gửi lên server là một

phần trong URL

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ó Cacheable=>thực thi nhanh

hơn POST

yêu cầu + dữ liệu được gửi đến

một thực thể được xác định bởi

URI và nhận thông tin trả về Dữ

liệu được đính kèm vào URI

Dữ liệu không gắn vào URL nên không hiển thị trên URL

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

Không cacheable

Gửi yêu cầu + dữ liệu đến một thực thể được xác định bởi URI và nhận thông tin trả về Dữ liệu được gửi sau thông tin tiêu đề (information header)

Trang 2

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

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

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

Chức năng của servlet container:

- 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.

- 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

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

Chu kỳ sống tính từ khi servlet bắt đầu được hệ thống lưu tâm đến (như gọi nạp vào bộ nhớ) cho đến khi nó bị loại khỏi trình chủ Web server vì không còn cần đến nữa Quá trình sống của servlet trải qua các giai đoạn sau :

Nạp servlet: Khi có một yêu cầu triệu gọi servlet, trình chủ web server sẽ xem servlet đã nạp

vào bộ nhớ hay chưa, nếu chưa nó sẽ nạp servlet vào bộ nhớ Một khi servlet đã nạp, Web servet

sẽ tiến đến giai đoạn khởi tạo servlet

Khởi tạo servlet: Trình chủ web server khởi tạo servlet bằng cách gọi đến phương thức init()

mà servlet cài đặt

Thực thi servlet: Khi trình duyệt hoặc các trang JSP triệu gọi servlet thông qua địa chỉ URL,

trình chủ web server sẽ chính thức gọi servlet thực thi thông qua các phương thức như doGet(), doPost()

Dọn dẹp servlet: Servlet không giữ lại trong bộ nhớ vĩnh viễn, sẽ đến lúc cần loại servlet khỏi

bộ nhớ

Trang 3

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 MyJSP_jsp.java

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=” ”%>

Web

Browser

Web

Browser

Web Server

JSP

Servle t

Servle

Java Application/

Web Service

Java Application/

Web Service

clinet

Trang 4

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= ” ” />

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:

Trang 5

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

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 :

- 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

- 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

- 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

- 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 layerCấu trúc chương trình là một class

Trang 6

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

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

- 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)

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

Trang 7

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à 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

Đối với các nhà phát triển Java, và tác giả nghiệp dư applet, JavaBeans cung cấp khả năng viết các ứng dụng nhanh chóng và dễ dàng, bằng cách sử dụng một bảng các thành phần có thể được lien kết để tạo thành một ứng dụng lớn hơn các thành phần Giao diện người dùng, chẳng hạn như cây, danh sách, hoặc đồ họa nút có thể làm cho các ứng dụng trở nên sống động, mà không cần viết các thành phần tùy chỉnh cho mỗi và mọi ứng dụng các giao thức mạng có thể được gói gọn trong thành phần một, cho phép các nhà phát triển chỉ đơn giản nhúng vào trong email và hỗ trợ web vào các ứng dụng của họ Nghĩa là bất cứ thành phần bạn có thể tưởng tượng có thể được viết như là một JavaBean, và sau đó cắm vào một ứng dụng

Tính năng

 JavaBeans hỗ trợ tính năng cho phép một ứng dụng đọc và sửa đổi các giá trị của họ

 JavaBeans hỗ trợ các sự kiện, cho phép các nhà cung cấp để tạo ra các sự kiện độc đáo của riêng mình

 JavaBeans hỗ trợ giao diện BeanInfo, cho phép các nhà cung cấp để xác định chính xác ứng dụng và phương pháp có sẵn, và biểu tượng cho loại beans có thể được hiển thị trên thanh công cụ

Trang 8

 JavaBeans là cấu hình cao, và các trạng thái của bean có thể được lưu và khôi phục thông qua đăng ký

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

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

Ví dụ :

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

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");

Trang 9

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 :

- Tồn tại theo request từ

phía client, được gắn theo

request

- Dữ liệu được liên kết khi

có yêu cầu, ngay cả khi

yêu cầu đó được chuyển

tiếp hay JSP được gộp

- Nó được lưu trữ trong đối

tượng Servlet 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

- Dữ liệu được kết nối đến

1 người dùng trong suốt lần viếng thăm(web)

- Chỉ có 1 phiên làm việc cho mỗi người dùng, tồn tại cho tới khi người dùng rời khỏi trang web

- Tồn tại trong suốt quá trình hoạt động của một ứng dụng

- Dữ liệu có thể cần trên bất

cư trang nào bất cứ thời điểm nào Chỉ có 1 phạm vi ứng dụng, nó tồn tại từ thời điểm JSP Engine bắt đầu khởi động cho đến khi nó kết thúc

- Bean sẽ còn tồn tại cho đến khi ứng dụng được khôi phục lại hoặc server được khởi động lại

Request: <jsp: useBean id=”bean” class=”BeanClass” scope=”request”/>

Sesion : <jsp: useBean id=”bean” class=”BeanClass” scope=”session”/>

Application: <jsp: useBean id=”bean” class=”BeanClass” scope=”application”/>

Ví Dụ :

package mybean;

public class CounterBean {

public CounterBean() {}

public int getCount() { return count; }

public void setCount(int count) { this.count = count;}

private int count = 0;

}

Trang 10

<%@page import = "mybean.CounterBean"%>

<%@ bean id="myBean" scope="request " class="mybean.CounterBean"%>

  <pre>

The current counter's value is: <%=myBean.getCount()%>

<%//Increase count value

myBean.setCount(myBean.getCount() + 1);

//Next judgment myBean object scope

CounterBean obj = null;

String scope = null;

  //If object is session scope

obj = (CounterBean)session.getAttribute("myBean");

if (obj != null)

scope = "session";

  //If object is application scope

obj = (CounterBean)application.getAttribute("myBean");

if (obj != null)

scope = "application";

  //If object scope is not session or application then must is page

if (scope == null)

scope = "request";

%>

  scope=<%=scope%>

</pre>

Câu 20 Hãy trình bày qui trình hoạt động của Struts Framework

(1)

(2)

(2)

(3)

(4) (5)

(6)

Ngày đăng: 19/09/2012, 09:21

HÌNH ẢNH LIÊN QUAN

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) - Câu hỏi và trả lời ôn tập Java
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) (Trang 7)

TỪ KHÓA LIÊN QUAN

w