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

Bài 2. Tổng quan MVC pdf

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 (1.07 MB, 47 trang )

Bài 2. Tổng quan MVC
Nội dung
 1. Ví dụ về MVC
 2. Giới thiệu về thiết kế MVC
 3. Quá trình phát triển của kiến trúc ứng
dụng Web
 3.1. Model 1
 3.2. Model 2
 3.3. Application frameworks
2
Bài toán
3
Giải pháp ban đầu
 Xây dựng nhiều servlet
 Trong servlet: xử lý nghiệp vụ (business
logic), hiển thị
4
Giải pháp +: sử dụng JSP
 Sử dụng JSP cho việc hiển thị
 Servlet forward các yêu cầu tới JSP
 Tách business logic và presentation
5
Giải pháp ++: sử dụng MVC
 Đưa business logic ra khỏi servlet và đặt
trong Model – các lớp Java có thể sử dụng
lại
 Model: sự kết hợp của business data và các
phương thức theo tác trên dữ liệu
6
Giải pháp ++: sử dụng MVC
7


Ví dụ 1. Tư vấn bia
8
Trang JSP
Trang html
9
10
beer_v1
web
src
WEB-INF
web.xml
result.htmlform.html
com
BeerExpert
.java
example
web model
BeerSelect
.java
Cấu trúc thư mục lập trình
11
WEB-INF
beer_v1
classes
webapps
web.xml
result.htmlform.html
com
BeerExpert
.class

example
web model
BeerSelect
.class
Cấu trúc thư mục triển khai
tomcat
form.html
<form method="POST“
action="SelectBeer.do">
Select beer characteristics
<p>Color:
<select name="color" size="1">
<option value="light">light</option>
<option value="amber">amber</option>
<option value="brown">brown</option>
<option value="dark">dark</option>
</select>
<center> <input type="SUBMIT"> </center>
</form>
12
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app …>
<servlet>
<servlet-name>ServletBeer</servlet-name>
<servlet-class>com.example.web.BeerSelect
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletBeer</servlet-name>

<url-pattern>/SelectBeer.do</url-pattern>
</servlet-mapping>
</web-app>
13
Servlet BeerSelect – version 1
public class BeerSelect extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("Beer Selection Advice<br>");
String c = request.getParameter("color");
out.println("<br>Got beer color "+c);
}
}
14
Test ứng dụng
15
Model BeerExpert
public class BeerExpert {
public List getBrands(String color){
List brands = new ArrayList();
if(color.equals("amber")){
brands.add("Jack Amber");
brands.add("Red Moose");
}
else{
brands.add("Jail Pale Ale");

brands.add("Gout Stout");
}
return brands;
}
}
16
Servlet BeerSelect – version 2
import package com.example.web;

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String c = request.getParameter("color");
BeerExpert be = new BeerExpert();
List result = be.getBrands(c);
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("Beer Selection Advice<br>");
Iterator it = result.iterator();
while(it.hasNext()){
out.print("<br>try: "+it.next());
}
}
17
Test ứng dụng
18
Kiến trúc hiện tại
19
Kiến trúc mong muốn
20
Result.jsp

<%@ page import="java.util.*"%>
<!DOCTYPE html>
<html>
<body>
<h1 align="center">Beer Recommendation </h1> <p>
<%
List styles=(List) request.getAttribute("styles");
Iterator it = styles.iterator();
while(it.hasNext()){
out.print("<br>try: "+it.next());
}
%>
</body>
</html>
21
Servlet BeerSelect – version 3
import package com.example.web;

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String c = request.getParameter("color");
BeerExpert be = new BeerExpert();
List result = be.getBrands(c);
request.setAttribute("styles", result);
RequestDispatcher view = request.getRequestDispatcher("result.jsp");
view.forward(request, response);
}
22
Test lại ứng dụng
23

Nội dung
 1. Giới thiệu về mẫu thiết kế MVC
 2. Quá trình phát triển của kiến trúc ứng
dụng Web
 2.1. Model 1
 2.2. Model 2
 2.3. Application frameworks
24
2. Giới thiệu MVC
25

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

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