Professional Documents
Culture Documents
J2EE MVC2 Introduction 2.1
J2EE MVC2 Introduction 2.1
BookOnline MVC 2
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
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
MVC 1
Model: DAO + POJO
View: JSP
Controller: JSP
MVC 2
Model: DAO + POJO
View: JSP
Controller: Servlet
MVC 2
Model: DAO + POJO
MVC 2
Gi s kin
CONTROLLER SERVLET
Chn View
VIEW
Gi d liu
JSP
MODEL
DAO
9
POJO
10
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> <%}%>
Cc v d khc
1 Lc sch theo danh mc
2 Tm kim nhanh
3 Xem thng tin chi tit sn phm
12
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
Forward
VIEW JSP
14
POJO pojo = . . .
request.setAttribute("key", pojo); String url="url view";
RequestDispatcher rd =
request.getRequestDispatcher(url); rd.forward(request, response);
15
Java Bean
<jsp:useBean id="key" type="POJO" scope="request"/>
. . .
Scriptlet <%
POJO pojo=(POJO)request.getAttribute(Key);
%>
16
ArrayList<POJO> ds = . . .
request.setAttribute("key", ds); String url="url view";
RequestDispatcher rd =
request.getRequestDispatcher(url); rd.forward(request, response);
17
Java Bean
<jsp:useBean id="key"
type="ArrayList<POJO>" scope="request"/>
. . .
Scriptlet <% ArrayList<POJO> ds=
(ArrayList<POJO>)request.getAttribute(Key);
%>
18
19
DangNhap.do
View - JSP DangNhap.jsp
20
CONTROLLER DangNhap.do
Chn View
VIEW DangNhap.jsp
Gi d liu
URL: DangNhap.do?action=Nap
Hin th d liu
Rt trch d liu
21
22
23
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
CONTROLLER
DangNhap.do
25
CONTROLLER TrangXXX.do
26
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
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
29
SendRedirect
Ngi dng nhn thy URL thay i Ngi dng c th Bookmark trang JSP
Forward
VIEW JSP
31
POJO pojo = . . .
HttpSession session = request.getSession(); session.setAttribute("key", pojo);
rd.forward(request, response);
32
Java Bean
<jsp:useBean id="key" type="POJO" scope="session"/>
. . .
Scriptlet <%
POJO pojo=(POJO)session.getAttribute(Key);
%>
33
ArrayList<POJO> ds = . . .
HttpSession session = request.getSession(); session.setAttribute("key", ds);
rd.forward(request, response);
34
Java Bean
<jsp:useBean id="key"
type="ArrayList<POJO>" scope="session"/>
. . .
Scriptlet <% ArrayList<POJO> ds=
(ArrayList<POJO>)session.getAttribute(Key);
%>
35
Cc v d khc
Qun l gi hng
36
37
SendRedirect
Ngi dng nhn thy URL thay i Ngi dng c th Bookmark trang JSP
Forward
VIEW JSP
39
request.getRequestDispatcher(url);
rd.forward(request, response);
40
Java Bean
<jsp:useBean id="key" type="POJO" scope="application"/>
. . .
Scriptlet <% POJO pojo=
(POJO)application.getAttribute(Key);
%>
41
request.getRequestDispatcher(url);
rd.forward(request, response);
42
Java Bean
<jsp:useBean id="key" type="ArrayList<POJO>" scope="application"/>
Scriptlet
<% ArrayList<POJO> ds= (ArrayList<POJO>)application.getAttribute(Key); %>
43
Session
Application (ServletContext)
44
45
HI V P
46