You are on page 1of 46

Ni dung trnh by

Gii thiu m hnh MVC 2

BookOnline MVC 2

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

GII THIU M HNH MVC 2

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Java Web
Servlet mnh v x l nghip v v iu phi nhng li rt yu v hin th JSP mnh v x l hin th nhng li yu v x l nghip v v iu phi

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Java Web
Thng th chng ta s kt hp sc mnh ca Servlet v JSP vo m hnh MVC 2 (Model-View-Controller) Cc Servlet ng vai tr lm Controller Cc trang JSP ng vai tr lm View

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

MVC 1
Model: DAO + POJO

View: JSP
Controller: JSP

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

MVC 2
Model: DAO + POJO

View: JSP
Controller: Servlet

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

MVC 2
Model: DAO + POJO

Cp nht d liu + Rt trch d liu


Controller : SERVLET Gi Model cp nht d liu + rt trch d liu

Chn View v gi d liu cho View


View: JSP Gi cc s kin cho Controller

Nhn d liu t Controller v hin th

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

MVC 2
Gi s kin

CONTROLLER SERVLET
Chn View

VIEW
Gi d liu

JSP

Cp nht d liu Rt trch d liu Hin th d liu

MODEL
DAO
9

POJO

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

V d 1: Hin th danh sch danh mc


View 1 Java 1 2 Java 2 3 Java 3 danh_muc.jsp 1 2 3 4 5 6 7 8 9 10 11 12 <% List<DanhMuc> ds=DanhMucDAO.getList(); %> <% for (int i=0; i<ds.size(); i++){ DanhMuc dm=ds.get(i); %> <a href=dm.jsp?mdm=<%=dm.getMDM()%>> <%=ds.get(i).getName()%> </a> <%}%>

10

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

V d 1: Hin th danh sch danh mc


danh_muc.do - doGet 1 2 3 4 List<DanhMuc> ds=DanhMucDAO.getList(); request.setAttribute(DanhMuc); FORWARD(danhmuc.jsp); danh_muc.jsp 1 2 3 4 5 6 7 8 9
11

URL: danh_muc.do

<% List<DanhMuc> ds = request.getAttribute(DanhMuc); for (int i=0; i<ds.size(); i++){ DanhMuc dm=ds.get(i); %> <a href=dm.jsp?mdm=<%=dm.getMDM()%>> <%=ds.get(i).getName()%> </a> <%}%>

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Cc v d khc
1 Lc sch theo danh mc

2 Tm kim nhanh
3 Xem thng tin chi tit sn phm

12

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Controller (Servlet) REQUEST View (JSP)

Page1
Forward

URL ngi dng nhn thy: Page1 Cha cc thuc tnh trong request ca Page1 Attribute1, Attribute2

Page2
Forward

URL ngi dng nhn thy: Page1 Cha thuc tnh trong request ca Page1 + Page2 Attribute1, Attribute2 Attribute3
URL ngi dng nhn thy: Page1 Cha thuc tnh trong request ca + Page1 + Page2 + Page 3 Attribute1, Attribute2, Attribute3 Attrubute4, Attribute5

Page3
13

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Controller (Servlet) REQUEST View (JSP)


CONTROLLER SERVLET
Object value1 = ... Object value2 = ... request.setAttribute (Key1, value) request.setAttribute (Key2, value) ...

Forward

VIEW JSP
14

Object value1 = request.getAttribute (Key1) Object value2 = request.setAttribute (Key2) ...

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Controller (Servlet) REQUEST View (JSP)


Controller (Servlet)

POJO pojo = . . .
request.setAttribute("key", pojo); String url="url view";

RequestDispatcher rd =
request.getRequestDispatcher(url); rd.forward(request, response);

15

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Controller (Servlet) REQUEST View (JSP)


View (JSP)

Java Bean
<jsp:useBean id="key" type="POJO" scope="request"/>

. . .
Scriptlet <%

POJO pojo=(POJO)request.getAttribute(Key);
%>
16

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Controller (Servlet) REQUEST View (JSP)


Controller (Servlet)

ArrayList<POJO> ds = . . .
request.setAttribute("key", ds); String url="url view";

RequestDispatcher rd =
request.getRequestDispatcher(url); rd.forward(request, response);

17

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Controller (Servlet) REQUEST View (JSP)


View (JSP)

Java Bean
<jsp:useBean id="key"

type="ArrayList<POJO>" scope="request"/>

. . .
Scriptlet <% ArrayList<POJO> ds=

(ArrayList<POJO>)request.getAttribute(Key);
%>
18

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

BookOnline Trang ng nhp

19

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Trang ng nhp MVC 2


Controller - Servlet

DangNhap.do
View - JSP DangNhap.jsp

URL ngi dng chn t website


DangNhap.do?action=Nap

20

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Trang ng nhp MVC 2


Gi s kin

CONTROLLER DangNhap.do
Chn View

VIEW DangNhap.jsp
Gi d liu

URL: DangNhap.do?action=Nap
Hin th d liu

Rt trch d liu

MODEL DAO POJO

21

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Trang ng nhp MVC 2


Ngi dng chn trang ng nhp bng cch chn URL <a href=DangNhap.do?action=Nap> ng nhp </a>

22

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Trang ng nhp MVC 2 DangNhap.do


1 2 3 4 5 6 7 8 9 String action = request.getParameter(action); String url=""; if (action.equals(Nap)){ url = DangNhap.jsp; } RequestDispatcher rd = request.getRequestDispatcher(url); rd.forward(request, response);

23

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Trang ng nhp MVC 2 DangNhap.jsp

action 1 2 3 4 5 6 7 8 9
24

<form name=frmDangNhap action=DangNhap.do method=post> . . . <input type=submit name = btdn value = ng nhp/> <input type=hidden name=action value=DangNhap/> </form>
Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Trang ng nhp MVC 2 DangNhap.jsp

CONTROLLER

DangNhap.do

25

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Trang ng nhp MVC 2 DangNhap.do

VIEW DangNhap.jsp CONTROLLER DangNhap.do

CONTROLLER TrangXXX.do

26

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Trang ng nhp MVC 2 DangNhap.do


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
27

String action = request.getParameter(action); String url=""; if (action.equals(Nap)){ url = DangNhap.jsp;} else if (action.equals(DangNhap)){ //S dng hidden String tenDangNhap = request.getParameter(tenDangNhap); String matKhau = request.getParameter(matKhau); KhachHang kh = KhachHangDAO.dangNhap(tenDangNhap, matKhau); if(kh==null){ String loi =Tn ng nhp hoc mt khu khng ng; request.setAttribute(loi, loi); url = DangNhap.jsp; }else{ HttpSession session = request.getSession(); session.setAttribute(KhachHang, kh); String url=TrangXXX.do; response.sendRedirect(url); return; } } RequestDispatcher rd = request.getRequestDispatcher(url); rd.forward(request, response);
Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Trang ng nhp MVC 2 DangNhap.jsp

1 2 3 4 5 6 7 8 9
28

<form> ... </form> <% if (request.getAttribute(loi)!=null){ String loi = request.getAttribute(loi); %> <p><font color=red><%=loi%></font></p> <%> } %>
Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Controller (Servlet) SESSION View (JSP)


Session
Session ID 1 Session 1 Client 1

Server Session ID 2 Session 2 Client 2

29

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Controller (Servlet) SESSION View (JSP)


Forward

Ngi dng khng nhn thy URL thay i


Ngi dng khng th Bookmark Qu trnh chuyn d liu Servlet JSP

SendRedirect
Ngi dng nhn thy URL thay i Ngi dng c th Bookmark trang JSP

Qu trnh chuyn d liu JSP Servlet JSP


Bn View cn kim tra d liu tn ti cha
30

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Controller (Servlet) SESSION View (JSP)


CONTROLLER SERVLET
Object value1 = ... Object value2 = ... HttpSession session = request.getSesssion(); session.setAttribute (Key1, value) session.setAttribute (Key2, value) ...

Forward

VIEW JSP
31

Object value1 = session.getAttribute (Key1) Object value2 = session.setAttribute (Key2) ...

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Controller (Servlet) SESSION View (JSP)


Controller (Servlet)

POJO pojo = . . .
HttpSession session = request.getSession(); session.setAttribute("key", pojo);

String url="url view";


RequestDispatcher rd = request.getRequestDispatcher(url);

rd.forward(request, response);
32

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Controller (Servlet) SESSION View (JSP)


View (JSP)

Java Bean
<jsp:useBean id="key" type="POJO" scope="session"/>

. . .
Scriptlet <%

POJO pojo=(POJO)session.getAttribute(Key);
%>
33

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Controller (Servlet) SESSION View (JSP)


Controller (Servlet)

ArrayList<POJO> ds = . . .
HttpSession session = request.getSession(); session.setAttribute("key", ds);

String url="url view";


RequestDispatcher rd = request.getRequestDispatcher(url);

rd.forward(request, response);
34

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Controller (Servlet) SESSION View (JSP)


View (JSP)

Java Bean
<jsp:useBean id="key"

type="ArrayList<POJO>" scope="session"/>

. . .
Scriptlet <% ArrayList<POJO> ds=

(ArrayList<POJO>)session.getAttribute(Key);
%>
35

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Cc v d khc
Qun l gi hng

36

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Controller (Servlet) APPLICATION View (JSP)


Session
Session ID 1 Application (ServletContext) Client 1

Server Session ID 2 Client 2

37

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Controller (Servlet) APPLICATION View (JSP)


Forward

Ngi dng khng nhn thy URL thay i


Ngi dng khng th Bookmark Qu trnh chuyn d liu Servlet JSP

SendRedirect
Ngi dng nhn thy URL thay i Ngi dng c th Bookmark trang JSP

Qu trnh chuyn d liu JSP Servlet JSP


Bn View cn kim tra d liu tn ti cha
38

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Controller (Servlet) APPLICATION View (JSP)


CONTROLLER SERVLET
synchronized(this) { Object value1 = ... Object value2 = ... ServletContext application = this.getServletContext(); application.setAttribute (Key1, value) application.setAttribute (Key2, value) ... }

Forward

VIEW JSP
39

Object v1 = application.getAttribute (Key1) Object v2 = application.setAttribute (Key2) ...

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Controller (Servlet) APPLICATION View (JSP)


Controller (Servlet)
synchronized(this) { POJO pojo = . . . ServletContext application = this.getServletContext(); application.setAttribute("key", pojo); String url="url view"; RequestDispatcher rd =

request.getRequestDispatcher(url);
rd.forward(request, response);
40

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Controller (Servlet) APPLICATION View (JSP)


View (JSP)

Java Bean
<jsp:useBean id="key" type="POJO" scope="application"/>

. . .
Scriptlet <% POJO pojo=

(POJO)application.getAttribute(Key);
%>
41

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Controller (Servlet) APPLICATION View (JSP)


Controller (Servlet)
synchronized(this) { ArrayList<POJO> ds = . . . ServletContext application = this.getServletContext(); application.setAttribute("key", ds); String url="url view"; RequestDispatcher rd =

request.getRequestDispatcher(url);
rd.forward(request, response);
42

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Controller (Servlet) APPLICATION View (JSP)


View (JSP)

Java Bean
<jsp:useBean id="key" type="ArrayList<POJO>" scope="application"/>

Scriptlet
<% ArrayList<POJO> ds= (ArrayList<POJO>)application.getAttribute(Key); %>

43

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Controller (Servlet) gi d liu cho View (JSP)


Request

Session
Application (ServletContext)

44

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

Ti liu tham kho


Nguyn Hong Anh, Tp bi ging mn chuyn Java, 2011 Marty Hall, Tp bi ging J2EE, 2010

45

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

HI V P

46

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2012

You might also like