首页 > 编程知识 正文

什么是mvc软件模式,什么是mvc三层架构

时间:2023-05-04 09:19:12 阅读:286210 作者:465

什么是MVC 1、什么是MVC2、代码层面理解(1)pom依赖(2)编写一个Servlet类,用来处理用户的请求(3)编写Hello.jsp,在WEB-INF目录下新建一个jsp的文件夹,新建hello.jsp(4)在web.xml中注册Servlet(5)配置Tomcat,并启动测试 3、小结

1、什么是MVC

MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范,是将业务逻辑、数据、显示分离的方法来组织代码。

MVC主要作用是降低了视图与业务逻辑间的双向偶合。

MVC不是一种设计模式,MVC是一种架构模式


① M o d e l Model Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为Service)。也就是该模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。
② V i e w View View(视图):负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。
③ C o n t r o l l e r Controller Controller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。

MVC有多种。
最典型的 M V C MVC MVC 就是 J S P + s e r v l e t + j a v a b e a n JSP + servlet + javabean JSP+servlet+javabean 的模式,其实就是刚开始学 j a v a w e b javaweb javaweb 用到的东西。

2、代码层面理解

一个实现了MVC架构模式的简单javaweb项目(Maven类型的项目)如下图所示。

(1)pom依赖

填写依赖,让 Maven 自动导入jar包。

<dependencies><!-- Java 编程语言的单元测试框架 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <!-- servlet --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <!-- jsp--> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> </dependency> <!-- jstl表达式 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency></dependencies>
(2)编写一个Servlet类,用来处理用户的请求 package com.workhah.servlet;// 实现HttpServlet接口public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 取得参数 String method = req.getParameter("method"); if (method.equals("add")){ req.getSession().setAttribute("msg","执行了add方法"); } if (method.equals("delete")){ req.getSession().setAttribute("msg","执行了delete方法"); } // 业务逻辑 // 视图跳转 req.getRequestDispatcher("/WEB-INF/jsp/hello.jsp").forward(req,resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req,resp); }}
(3)编写Hello.jsp,在WEB-INF目录下新建一个jsp的文件夹,新建hello.jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>Kuangshen</title></head><body>${msg}</body></html>
(4)在web.xml中注册Servlet <?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>com.workhah.servlet.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/user</url-pattern> </servlet-mapping></web-app>
(5)配置Tomcat,并启动测试

localhost:8080/user?method=add
localhost:8080/user?method=delete


3、小结

MVC框架要做哪些事情:

1、将url映射到java类或java类的方法 。
2、封装用户提交的数据 。
3、处理请求–调用相关的业务处理–封装响应数据 。
4、将响应的数据进行渲染 jsp、html 等表示层数据 。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。