+ All Categories
Home > Documents > DEZVOLTAREA APLICATIILOR WEB CURS 7inf.ucv.ro/documents/mihais/DAW/DAW-7.pdf · Scop: aplicatii mai...

DEZVOLTAREA APLICATIILOR WEB CURS 7inf.ucv.ro/documents/mihais/DAW/DAW-7.pdf · Scop: aplicatii mai...

Date post: 17-Feb-2019
Category:
Upload: dangngoc
View: 227 times
Download: 0 times
Share this document with a friend
13
DEZVOLTAREA APLICATIILOR WEB CURS 7 Lect. Univ. Dr. Mihai Stancu
Transcript
Page 1: DEZVOLTAREA APLICATIILOR WEB CURS 7inf.ucv.ro/documents/mihais/DAW/DAW-7.pdf · Scop: aplicatii mai stabile si mai usor de intretinut D A LOR B ... 6 Arhitectura MVC –Model –Java

DEZVOLTAREA APLICATIILOR WEB CURS 7

Lect. Univ. Dr. Mihai Stancu

Page 2: DEZVOLTAREA APLICATIILOR WEB CURS 7inf.ucv.ro/documents/mihais/DAW/DAW-7.pdf · Scop: aplicatii mai stabile si mai usor de intretinut D A LOR B ... 6 Arhitectura MVC –Model –Java

DE

ZV

OL

TA

RE

AA

PL

IC

AT

IIL

OR

WE

B–

CU

RS

6

S u p o r t d e c u r s

suport (Beginning JSP, JSF and Tomcat)

Capitolul 3 – JSP Application Architectures

Page 3: DEZVOLTAREA APLICATIILOR WEB CURS 7inf.ucv.ro/documents/mihais/DAW/DAW-7.pdf · Scop: aplicatii mai stabile si mai usor de intretinut D A LOR B ... 6 Arhitectura MVC –Model –Java

Cresterea complexitatii

Eficienta in dezvoltare

Mentinerea aplicatiei

Logica de business vs. design

Scop: aplicatii mai stabile si mai usor de intretinut

DE

ZV

OL

TA

RE

AA

PL

IC

AT

IIL

OR

WE

B–

CU

RS

6

A r h i t e c t u r a a p l i c a t i e i J S P

Page 4: DEZVOLTAREA APLICATIILOR WEB CURS 7inf.ucv.ro/documents/mihais/DAW/DAW-7.pdf · Scop: aplicatii mai stabile si mai usor de intretinut D A LOR B ... 6 Arhitectura MVC –Model –Java

Neajunsuri?

DE

ZV

OL

TA

RE

AA

PL

IC

AT

IIL

OR

WE

B–

CU

RS

6

A r h i t e c t u r a s t a n d a r d

Page 5: DEZVOLTAREA APLICATIILOR WEB CURS 7inf.ucv.ro/documents/mihais/DAW/DAW-7.pdf · Scop: aplicatii mai stabile si mai usor de intretinut D A LOR B ... 6 Arhitectura MVC –Model –Java

Model – View – Controller

Avantaje?

DE

ZV

OL

TA

RE

AA

PL

IC

AT

IIL

OR

WE

B–

CU

RS

6

A r h i t e c t u r a M V C

Page 6: DEZVOLTAREA APLICATIILOR WEB CURS 7inf.ucv.ro/documents/mihais/DAW/DAW-7.pdf · Scop: aplicatii mai stabile si mai usor de intretinut D A LOR B ... 6 Arhitectura MVC –Model –Java

LoginPage.jsp

Cererea adresata catre Controller (Java Servlet)

DE

ZV

OL

TA

RE

AA

PL

IC

AT

IIL

OR

WE

B–

LA

B 6

A r h i t e c t u r a M V C – C e r e r e c a t r e C o n t r o l l e r

<%@ page language="java" contentType="text/html; charset=windows-1256"

pageEncoding="windows-1256"%>

<%

response.setHeader("Cache-Control", "no-store, must-revalidate");

response.setHeader("Pragma", "no-cache");

response.setDateHeader("Expires", -1);

%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">

<title>Login Page</title>

</head>

<body>

<form action="LoginServlet" method="post">

Please enter your user name <input type="text" name="un" id="un" /><br>

Please enter your password <input type="text" name="pw" id="pw" />

<input type="submit" value="submit">

</form>

</body>

</html>

Page 7: DEZVOLTAREA APLICATIILOR WEB CURS 7inf.ucv.ro/documents/mihais/DAW/DAW-7.pdf · Scop: aplicatii mai stabile si mai usor de intretinut D A LOR B ... 6 Arhitectura MVC –Model –Java

LoginServlet.java

Interogare Model pentru obtinerea informatiilor

Prelucrarea infromatiilor

Redirectionarea catre View

DE

ZV

OL

TA

RE

AA

PL

IC

AT

IIL

OR

WE

B–

LA

B 6

A r h i t e c t u r a M V C –S e r v l e t a s C o n t r o l l e r

...

public class LoginServlet extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, java.io.IOException {

try {

UserBean user = new UserBean();

user.setUserName(request.getParameter("un"));

user.setPassword(request.getParameter("pw"));

user = UserDAO.login(user);

if (user.isValid()) {

HttpSession session = request.getSession(true);

session.setAttribute("currentSessionUser", user);

response.sendRedirect("userLogged.jsp"); // logged-in page

}

else

response.sendRedirect("invalidLogin.jsp"); // error page

}

catch (Throwable theException) {

System.out.println(theException);

}

}

}

Page 8: DEZVOLTAREA APLICATIILOR WEB CURS 7inf.ucv.ro/documents/mihais/DAW/DAW-7.pdf · Scop: aplicatii mai stabile si mai usor de intretinut D A LOR B ... 6 Arhitectura MVC –Model –Java

UserDao.java

Data Access Object (maparea entitatilor din DB)

Conectarea la DB

Obtinerea informatiilor

Return Java Bean

DE

ZV

OL

TA

RE

AA

PL

IC

AT

IIL

OR

WE

B–

LA

B 6

A r h i t e c t u r a M V C – M o d e l – D A O C l a s s

...

public class UserDAO {

static Connection currentCon = null;

static ResultSet rs = null;

public static UserBean login(UserBean bean) {

...

String searchQuery = "select * from users where username='" +

bean.getUsername() + "' AND password='" + bean.getPassword() + "'";

try {

currentCon = ConnectionManager.getConnection();

stmt = currentCon.createStatement();

rs = stmt.executeQuery(searchQuery);

// GET THE DATA

...

// CLOSE THE DB CONNECTION

...

return bean;

}

}

Page 9: DEZVOLTAREA APLICATIILOR WEB CURS 7inf.ucv.ro/documents/mihais/DAW/DAW-7.pdf · Scop: aplicatii mai stabile si mai usor de intretinut D A LOR B ... 6 Arhitectura MVC –Model –Java

ConnectionManager.java

JDBC (conform versiune DB)

DE

ZV

OL

TA

RE

AA

PL

IC

AT

IIL

OR

WE

B–

LA

B 6

A r h i t e c t u r a M V C – M o d e l – C o n f i g M a n a g e r

...

public class ConnectionManager {

static Connection con;

static String url;

public static Connection getConnection() {

try {

String url = "jdbc:mysql://localhost/TEST";

Class.forName("com.mysql.jdbc.Driver");

try {

con = DriverManager.getConnection(url, "root", "*******");

} catch (SQLException ex) {

ex.printStackTrace();

}

} catch (ClassNotFoundException e) {

System.out.println(e);

}

return con;

}

}

Page 10: DEZVOLTAREA APLICATIILOR WEB CURS 7inf.ucv.ro/documents/mihais/DAW/DAW-7.pdf · Scop: aplicatii mai stabile si mai usor de intretinut D A LOR B ... 6 Arhitectura MVC –Model –Java

UserBean.java

Java Bean – incapsulare informatii “user”

DE

ZV

OL

TA

RE

AA

PL

IC

AT

IIL

OR

WE

B–

LA

B 6

A r h i t e c t u r a M V C – M o d e l – J a v a B e a n

...

public class UserBean {

private String username;

private String password;

private String firstName;

private String lastName;

public boolean valid;

public String getFirstName() {

return firstName;

}

public void setFirstName(String newFirstName) {

firstName = newFirstName;

}

public String getLastName() {

return lastName;

}

public void setLastName(String newLastName) {

lastName = newLastName;

}

...

Page 11: DEZVOLTAREA APLICATIILOR WEB CURS 7inf.ucv.ro/documents/mihais/DAW/DAW-7.pdf · Scop: aplicatii mai stabile si mai usor de intretinut D A LOR B ... 6 Arhitectura MVC –Model –Java

userLogged.jsp

Preluare informatii din context pregatite de Controller (Servlet)

DE

ZV

OL

TA

RE

AA

PL

IC

AT

IIL

OR

WE

B–

LA

B 6

A r h i t e c t u r a M V C – V i e w – J S P P a g e

<%@ page language="java" contentType="text/html; charset=windows-1256"

pageEncoding="windows-1256" import="ExamplePackage.UserBean"%>

<%

response.setHeader("Cache-Control","no-store,must-revalidate");

response.setHeader("Pragma","no-cache");

response.setDateHeader ("Expires", -1);

if(session.getAttribute("currentSessionUser") != null) {

%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">

<title> User Logged Successfully </title>

</head>

<body onload="noBack();">

<a href="LogoutServlet">Logout</a>

<% UserBean currentUser = (UserBean)(session.getAttribute("currentSessionUser"));%>

Welcome <%= currentUser.getFirstName() + " " + currentUser.getLastName() %>

</body>

</html>

<%

} else {

response.sendRedirect("LoginPage.jsp");

}

%>

Page 12: DEZVOLTAREA APLICATIILOR WEB CURS 7inf.ucv.ro/documents/mihais/DAW/DAW-7.pdf · Scop: aplicatii mai stabile si mai usor de intretinut D A LOR B ... 6 Arhitectura MVC –Model –Java

DE

ZV

OL

TA

RE

AA

PL

IC

AT

IIL

OR

WE

B–

CU

RS

6

C u v i n t e c h e i e

MVC

servlet

JSP

Java Bean

context

Page 13: DEZVOLTAREA APLICATIILOR WEB CURS 7inf.ucv.ro/documents/mihais/DAW/DAW-7.pdf · Scop: aplicatii mai stabile si mai usor de intretinut D A LOR B ... 6 Arhitectura MVC –Model –Java

DE

ZV

OL

TA

RE

AA

PL

IC

AT

IIL

OR

WE

B–

CU

RS

6

R e s u r s e u t i l e

https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93cont

roller

http://www.thejavageek.com/2013/08/11/mvc-architecture-with-

servlets-and-jsp/


Recommended