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

Hướng dẫn AOP Spring

Lập trình hướng đối tượng (AOP) khen ngợi OOP theo nghĩa là nó cũng cung cấp tính mô đun. Nhưng đơn vị chính của...

Bộ sưu tập cho người mới bắt đầu Java

Set là một Khung bộ sưu tập Java. Set là một Giao diện trong gói java.util . Nó thực hiện Bộ sưu tập Giao diện.

URI tùy chỉnh trong thẻ tùy chỉnh JSP

Chúng ta có thể sử dụng URI tùy chỉnh, để báo cho bộ chứa web về tệp tld. Trong trường hợp như vậy,...

Tiêm phụ thuộc với phương pháp nhà máy vào Spring

Spring framework cung cấp cơ sở để tiêm đậu bằng phương pháp nhà máy. Để làm như vậy, chúng ta có thể sử...

Sưu tập bản đồ cho người mới bắt đầu Java

Bản đồ là một Giao diện đi theo khung Bộ sưu tập Java. Map Collection Tutorial for...

Lặp lại bằng cách sử dụng thẻ tùy chỉnh JSP

Chúng ta có thể lặp lại nội dung thân của bất kỳ thẻ nào bằng phương thức doAfterBody () của giao diện IterationTag .

Leave a reply

Please enter your comment!
Please enter your name here