MVC trong JSP

MVC là viết tắt của Model View và Controller. Đó là một mẫu thiết kế tách biệt logic kinh doanh, logic trình bày và dữ liệu.

lap-trinh-java-jsp
MVC in JSP

Bộ điều khiển hoạt động như một giao diện giữa View và Model. Bộ điều khiển chặn tất cả các yêu cầu đến.

Mô hình đại diện cho trạng thái của ứng dụng tức là dữ liệu. Nó cũng có thể có logic kinh doanh.

Chế độ xem đại diện cho bản trình bày tức là UI (Giao diện người dùng).

Lợi thế của kiến ​​trúc MVC (Model 2)

  1. Điều khiển điều hướng được tập trung
  2. Dễ dàng duy trì ứng dụng lớn

Nếu bạn chưa quen với MVC, vui lòng truy cập Model1 vs Model2 trước.

<figure><iframe width="336" height="280" allowfullscreen="true"></iframe></figure>

Ví dụ MVC trong JSP

Trong ví dụ này, chúng tôi đang sử dụng servlet làm trình điều khiển, jsp làm thành phần xem, lớp Java Bean làm mô hình.

Trong ví dụ này, chúng tôi đã tạo ra 5 trang:

  • index.jsp một trang nhận đầu vào từ người dùng.
  • ControllerServlet.java một servlet hoạt động như một bộ điều khiển.
  • Các tệp login-thành công và các tệp login-error.jsp hoạt động như các thành phần xem.
  • tệp web.xml để ánh xạ servlet.

Tệp: index.jsp

<form action="ControllerServlet" method="post">  
Name:<input type="text" name="name"><br>  
Password:<input type="password" name="password"><br>  
<input type="submit" value="login">  
</form>  

File: ControllerServlet

package com.javatpoint;  
import java.io.IOException;  
import java.io.PrintWriter;  
import javax.servlet.RequestDispatcher;  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
public class ControllerServlet extends HttpServlet {  
    protected void doPost(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {  
        response.setContentType("text/html");  
        PrintWriter out=response.getWriter();  
          
        String name=request.getParameter("name");  
        String password=request.getParameter("password");  
          
        LoginBean bean=new LoginBean();  
        bean.setName(name);  
        bean.setPassword(password);  
        request.setAttribute("bean",bean);  
          
        boolean status=bean.validate();  
          
        if(status){  
            RequestDispatcher rd=request.getRequestDispatcher("login-success.jsp");  
            rd.forward(request, response);  
        }  
        else{  
            RequestDispatcher rd=request.getRequestDispatcher("login-error.jsp");  
            rd.forward(request, response);  
        }  
      
    }  
  
    @Override  
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
        doPost(req, resp);  
    }  
}  

File: LoginBean.java

package com.javatpoint;  
public class LoginBean {  
private String name,password;  
  
public String getName() {  
    return name;  
}  
public void setName(String name) {  
    this.name = name;  
}  
public String getPassword() {  
    return password;  
}  
public void setPassword(String password) {  
    this.password = password;  
}  
public boolean validate(){  
    if(password.equals("admin")){  
        return true;  
    }  
    else{  
        return false;  
    }  
}  
}  

File: login-success.jsp

<%@page import="com.javatpoint.LoginBean"%>  
  
<p>You are successfully logged in!</p>  
<%  
LoginBean bean=(LoginBean)request.getAttribute("bean");  
out.print("Welcome, "+bean.getName());  
%>  

File: login-error.jsp

<p>Sorry! username or password error</p>  
<%@ include file="index.jsp" %>  

File: web.xml

<?xml version="1.0" encoding="UTF-8"?>  
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"   
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"   
id="WebApp_ID" version="3.0">  
    
  <servlet>  
  <servlet-name>s1</servlet-name>  
  <servlet-class>com.javatpoint.ControllerServlet</servlet-class>  
  </servlet>  
  <servlet-mapping>  
  <servlet-name>s1</servlet-name>  
  <url-pattern>/ControllerServlet</url-pattern>  
  </servlet-mapping>  
</web-app> 

Bài viết gần đây

Tìm hiểu chi tiết bên trong JVM

JVM (Java Virtual Machine) là một máy ảo. Nó cung cấp môi trường runtime, nơi mà mã Java bytecode sẽ được thực thi.

Sự Khác nhau giữa JDK, JRE và JVM

Trước khi thực sự đặt tay gõ các dòng code Java, cài đặt Java thì chúng ta phải hiểu sự khác nhau giữa JDK, JRE và JVM.

Hướng dẫn Cài đặt đường dẫn PATH trong Java

Nếu bạn tạo dự án Java bên ngoài thư mục JDK / bin, thì cần phải thiết lập đường dẫn của JDK. Đây là 2 cách cài đặt đường dẫn path trong Java.

Cách hoạt động của Chương trình Java: Hello Java

Tìm hiểu những gì xảy ra trong khi biên dịch và chạy chương trình java. Hơn nữa, chúng ta sẽ làm rõ một số câu hỏi ở chương trình Hello Java của chúng ta.

Viết Chương trình Java đầu tiên: Hello Java

Trong bài hướng dẫn này, chúng ta sẽ học cách viết chương trình đơn giản đầu tiên với ngôn ngữ lập trình Java. Qua bài này bạn sẽ biết cách viết Java, Compile và chạy một chương trình Java bất kỳ

So sánh JAVA vs C++

Hôm nay trong bài viết này mình sẽ so sánh Java vs C++. Còn nếu bạn muốn đọc thêm về so sánh Java vs PHP hay Java với C# thì xem thêm tại đây:

Leave a reply

Please enter your comment!
Please enter your name here