Mô hình MVC trong JAVA web JSP/Servlet là gì? – https://final-blade.com

Mô hình MVC trong JAVA web JSP/Servlet là gì? Mô hình MVC là một dạng mẫu thiết kế Design Pattern được áp dụng rộng rãi với tất cả các ngôn ngữ lập trình như JAVA,PHP,ANDROID…Ở bài này chúng ta sẽ cùng nhau tìm hiểu và làm rõ mô hình này nói chung và trong java web jsp/servlet nói riêng nhé.

Đầu tiên tất cả chúng ta đi đến với một khái niệm rất quan trọng đó là : MVC là gì … ?

Mô hình MVC trong JAVA là gì

1. MVC là gì?

MVC viết tắt của 3 từ đó là Model – View – Controller (MVC) là mẫu thiết kế nhằm mục tiêu chia tách phần Giao diện và Code để dễ quản lý, phát triển và bảo trì.

Mỗi phần lại có có một trách nhiệm giải quyết và xử lý khác nhau, so với trong mô hình mvc trong java nói riêng và mô hình mvc nói chung thì :

  • Model: Tương tác và truy xuất dữ liệu đến database (cơ sở dữ liệu)
  • View: Giao diện mà người dùng có thể nhìn thấy, tuy nhiên thường view chỉ có một nhiệm vụ duy nhất là hiển thị dữ liệu.Trong Java thì các bạn nên giảm thiểu code Java vào file jsp nhé.Lý do tại sao mời các bạn đọc bài viết này.Trong Java web view chính là file jsp.
  • Controller: Nó có nhiệm vụ điều khiển tương tác giữa Model và View cũng như xử lý logic nghiệp vụ (Business).Có thể giải thích kỹ hơn nữa đối với trong Java thì controller lấy dữ liệu từ model sau đó gữi đến view.Trong Java web  controller là file servlet.

Để những bạn hiểu rõ hơn, những bạn hoàn toàn có thể xem mô hình MVC dưới đây :

mô hình mvc trong java

Nhìn vào mô hình trên thì hoàn toàn có thể lý giải rằng. Khi có một user ( người dùng ) truy vấn vào một địa chỉ trên url, tất yếu sẽ có một request đến và lúc này controller nó sẽ lấy nhu yếu của người dùng. Sau đó sẽ gửi nhu yếu đó đến Mã Sản Phẩm. Model sẽ tương tác với database nếu có ( hầu hết sẽ truy xuất tài liệu từ database ), sau đó lấy đúng tài liệu nhu yếu và gữi trả lại cho controller. Controller giải quyết và xử lý nhiệm vụ, logic business và gữi trả lại cho view. View triển khai trách nhiệm hiển thị tài liệu đúng tác dụng cho người dùng nhu yếu .

Vậy tại sao cần mô hình MVC?

  • Ưu điểm của mô hình MVC:
    +Theo tôi việc sử dụng MVC mang tính chất chuyên nghiệp  trong lập trình web vì nó mang tính logic cao nhưng đơn giản, phân tách rõ ràng các chức năng cần làm của một ứng dụng, qua đó nhiều người có thể làm chung dự án, phát hiện và sửa lỗi, dễ nâng cấp tính năng đồng thời khi bảo trì cũng rất dễ dàng.
  • Nhược điểm của mô hình MVC:

+ MVC khi dùng trong những project nhỏ sẽ gây phức tạp yếu tố cần xử lý
+ Mặc dù, MVC tỏ ra lợi thế hơn nhiều so với cách lập trình thường thì. Nhưng MVC luôn phải nạp, load những thư viện đồ sộ để giải quyết và xử lý tài liệu. Chính điều này làm cho mô hình trở nên chậm trễ hơn nhiều so với việc code tay thuần túy .
+ MVC yên cầu người tiếp cận phải biết qua OOP, có kinh nghiệm tay nghề tương đối cho việc thiết lập và kiến thiết xây dựng một ứng dụng hoàn hảo. Sẽ rất khó khăn vất vả nếu OOP của người sử dụng còn yếu .
+ MVC tận dụng mảng là thành phần chính cho việc truy xuất tài liệu. Nhất là với việc sử dụng active record để viết ứng dụng. Chúng luôn cần người viết phải nắm vứng mô hình mảng đa chiều .

Một ví dụ cụ thể về mô hình mvc trong Java web JSP/SERVLET

Chúng ta sẽ hiểu, thiết lập và làm phần này theo mô hình mvc trong java. Bằng cách tạo một ứng dụng đăng nhập mẫu sẽ hiển thị một thông tin tên người dùng chào mừng và nếu đăng nhập thất bại thì nó sẽ chuyển hướng đến trang báo lỗi. Đây là những gì tất cả chúng ta sẽ tạo ra .

  • Login.jsp: – sẽ nhập tên người dùng và mật khẩu
  • Success.jsp: – Nếu đăng nhập thành công, thì trang này sẽ được hiển thị
  • Error.jsp: – Nếu đăng nhập không thành công thì trang này sẽ được hiển thị.
  • LoginController.java: – Đây là phần điều khiển của ứng dụng liên lạc với mô hình
  • Authenticator.java: Có logic nghiệp vụ để xác thực
  • User.java: Lưu trữ tên người dùng và mật khẩu cho người dùng.

Yêu cầu:

  • IDE Eclipse
  • Máy chủ Apache tomcat
  • JSTL jar

Tạo một dự án Bất Động Sản Web bằng cách vào Dynamic web project click File -> New -> Dynamic Web Project .
Điền vào những chi tiết cụ thể như tên dự án Bất Động Sản, sever. Nhập tên dự án Bất Động Sản của bạn là “ MVCDemo ”. Bạn sẽ nhận được cấu trúc thư mục sau cho dự án Bất Động Sản .

Tạo success.jsp, error.jsp và login.jsp và LoginController servlet, Authenticator class, User class trong những packages. Đặt jstl.jar trong thư mục WEB-INF / lib .

Bây giờ tất cả chúng ta có cấu trúc của dự án Bất Động Sản, đặt mã này vào những file tương ứng .

LoginController 

package mvcdemo.controllers;
 
import java.io.IOException;
 
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import mvcdemo.model.Authenticator;
import mvcdemo.model.User;
 
import sun.text.normalizer.ICUBinary.Authenticate;
 
public class LoginController extends HttpServlet {
private static final long serialVersionUID = 1L;
 
public LoginController() {
super();
}
 
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
 
String username = request.getParameter("username");
String password = request.getParameter("password");
RequestDispatcher rd = null;
 
Authenticator authenticator = new Authenticator();
String result = authenticator.authenticate(username, password);
if (result.equals("success")) {
rd = request.getRequestDispatcher("/success.jsp");
User user = new User(username, password);
request.setAttribute("user", user);
} else {
rd = request.getRequestDispatcher("/error.jsp");
}
rd.forward(request, response);
}
 
}

Authenticator.java

class responsible for authentication of userJava
 
package mvcdemo.model;
 
public class Authenticator {
 
	public String authenticate(String username, String password) {
		if (("itphutran".equalsIgnoreCase(username))
				&& ("password".equals(password))) {
			return "success";
		} else {
			return "failure";
		}
	}
}

User.java

package mvcdemo.model;
 
public class User {
 
	private String username;
	private String password;
 
	public User(String username, String password){
		this.username = username;
		this.password = password;
	}
 
	public String getUsername() {
		return username;
	}
 
	public void setUsername(String username) {
		this.username = username;
	}
 
	public String getPassword() {
		return password;
	}
 
	public void setPassword(String password) {
		this.password = password;
	}
 
}

error.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>






Insert title here


	
Enter username :
Enter password :

success.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>






<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
Insert title here


 
	Welcome ${requestScope['user'].username}. 
 

và file web.xml



  MVCDemo
   
    
    LoginController
    LoginController
    mvcdemo.controllers.LoginController
  
  
    LoginController
    /LoginController
  

Bây giờ hãy thử và chạy ứng dụng :

Start server tomcat của bạn và nhấn url : http://localhost:8080/MVCDemo/login.jsp.

Bạn sẽ hoàn toàn có thể xem trang này :

Nhập tên người dùng là “itphutran” và mật khẩu là “password”. Bạn sẽ thấy thông báo “Welcome itphutran”.

Để bạn đọc dễ hiểu hơn, hãy nhìn vào sơ đồ bộc lộ bên dưới :

  1. Đầu tiên, người dùng truy cập vào trang login.jsp và điền vào dữ liệu và gửi biểu mẫu.
  2. LoginController

     được gọi khi người dùng nhấn nút submit  và xử lý vì thuộc tính 

    action

     của

    form =“ LoginController ”.

  3. Trong

    LoginController

    , kiểm tra valid từ người dùng và thiết lập thông tin của người dùng.

  4. rd.forward(request, response);

      chuyển tiếp sang trang jsp.Tại trang success.jsp in thông tin username bằng cách sử dụng biểu thức Expression Language trong JSP 

    Welcome USD{requestScope[‘ user ’].username

    }

    .

Tổng kết :

Trong bài viết này, tất cả chúng ta đã tìm hiểu và khám phá về mô hình MVC trong những ngôn từ lập trình nói chung và trong java web jsp / servlet nói riêng. Qua đó tất cả chúng ta đã nghiên cứu và phân tích những ưu và điểm yếu kém của mô hình mvc. Phân tích bài toán và trường hợp đơn cử của mô hình mvc trong java web jsp / servlet. Chúc những bạn học tốt !