JSP 中的 MVC(Archi结构
什么是MVC?
MVC 是一种将业务逻辑、表示和数据分离的架构。在 MVC 中,
- M 代表型号
- V 代表视图
- C 代表控制器。
MVC 是一种系统化的应用程序使用方式,其中流程从视图层开始,在控制器层中提出和处理请求,然后发送到模型层以插入数据并返回成功或失败消息。 MVC Archi结构图如下所示:

模型层
- 这是由系统的业务逻辑组成的数据层。
- 它由应用程序的所有数据组成
- 它还代表应用程序的状态。
- 它由与以下对象相关的类组成: 数据库.
- 控制器连接模型并获取数据并发送到视图层。
- 该模型也与数据库连接,并将数据存储到与其连接的数据库中。
查看图层
- 这是一个表示层。
- 它由HTML,JSP等组成。
- 它通常显示应用程序的 UI。
- 它用于显示从控制器获取的数据,而控制器又从模型层类获取数据。
- 该视图层在应用程序的 UI 上显示数据。
控制器层
- 它充当视图 (View) 和模型 (Model) 之间的接口。
- 它拦截来自视图层的所有请求。
- 它接收来自视图层的请求并处理请求并对请求进行必要的验证。
- 该请求进一步发送到模型层进行数据处理,一旦请求被处理,它将发送回控制器所需的信息并由视图相应地显示。
MVC的优点 Archi质地
MVC 的优点是:
- 易于维护
- 易于扩展
- 易于测试
- 导航控制集中
使用 MVC 的 JSP 应用程序设计示例 Archi质地
在这个例子中,我们将展示如何在 JSP 中使用 MVC 架构。
- 我们以包含两个变量“电子邮件”和“密码”的表单为例,它是我们的视图层。
- 一旦用户输入电子邮件和密码并单击提交,操作就会在 mvc_servlet 中传递,电子邮件和密码也会在其中传递。
- 这个 mvc_servlet 是控制器层。在 mvc_servlet 中,请求被发送到充当模型层的 bean 对象。
- 电子邮件和密码值被设置到 bean 中并存储以供进一步使用。
- 从 bean 中获取值并显示在视图层。
Mvc_示例.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-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=ISO-8859-1"> <title>MVC Guru Example</title> </head> <body> <form action="Mvc_servlet" method="POST"> Email: <input type="text" name="email"> <br /> Password: <input type="text" name="password" /> <input type="submit" value="Submit" /> </form> </body> </html>
代码说明:
视图层:
代码行10-15: 这里我们取一个表单,该表单有两个字段,参数为“email”和“password”,这个请求需要转发到控制器 Mvc_servlet.java,并在操作中传递。传递的方法是 POST 方法。
Mvc_servlet.java
package demotest; 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; /** * Servlet implementation class Mvc_servlet */ public class Mvc_servlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Mvc_servlet() { super(); // TODO Auto-generated constructor stub } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String email=request.getParameter("email"); String password=request.getParameter("password"); TestBean testobj = new TestBean(); testobj.setEmail(email); testobj.setPassword(password); request.setAttribute("gurubean",testobj); RequestDispatcher rd=request.getRequestDispatcher("mvc_success.jsp"); rd.forward(request, response); } }
代码说明:
控制器层
代码行14:mvc_servlet 正在扩展 HttpServlet。
代码行26: 由于使用的方法是 POST,因此请求进入 servlet 的 doPost 方法,该方法处理请求并将其作为 testobj 保存到 bean 对象中。
代码行34: 使用请求对象我们将属性设置为 gurubean,并赋予其 testobj 的值。
代码行35: 这里我们使用请求调度程序对象将成功消息传递给 mvc_success.jsp
测试Bean.java
package demotest; import java.io.Serializable; public class TestBean implements Serializable{ public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } private String email="null"; private String password="null"; }
代码说明:
模型层:
代码行7-17: 它包含电子邮件和密码的 getter 和 setter,它们是测试 Bean 类的成员
代码行19-20: 它在bean类中定义了字符串类型的成员email和password。
Mvc_success.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@page import="demotest.TestBean"%> <!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=ISO-8859-1"> <title>Guru Success</title> </head> <body> <% TestBean testguru=(TestBean)request.getAttribute("gurubean"); out.print("Welcome, "+testguru.getEmail()); %> </body> </html>
代码说明:
代码行12: 我们正在使用在 servlet 的 doPost 方法中设置的请求对象来获取属性。
代码行13: 我们正在打印已保存在 bean 对象中的欢迎消息和电子邮件 ID
输出:
执行上述代码时,您将获得以下输出:
当您单击 mvc_example.jsp 时,您将获得包含电子邮件和密码的表单以及提交按钮。
在表单中输入电子邮件和密码后,点击提交
点击提交后输出如下所示
输出:
当您在屏幕上输入电子邮件和密码并单击提交时,详细信息将保存在 TestBean 中,并在下一个屏幕上从 TestBean 获取成功消息。
总结
在本文中,我们了解了 MVC,即模型视图控制器架构。
JSP 充当数据和控制器的呈现角色。它是模型和视图之间的接口,而模型既连接到控制器,也连接到数据库。主要业务逻辑存在于模型层。