JavaWeb和MVC三层架构

这篇具有很好参考价值的文章主要介绍了JavaWeb和MVC三层架构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

JavaWeb 概述

网站发布和部署一定要依托技术语言吗:

不一定,一个网站可以直接发布和部署,因为因为浏览器能够识别网页只需要两样东西,网络和静态页面,还有一个装在他们的容器,比如 nginx。

静态页面面临的问题:

  • 1:静态网页是固定的,是不可变的。如果一个网站比如腾讯首页,这里需要 1000 文章,那么就必须编写 1000 的 html 页面。

  • 2:难以管理维护,而且需要大量人工去查询和维护。

  • 3:难以修改,如果需要修改某页面中的错别字,就必须要找到这个页面,再进行修改才可以生效。

JavaWeb 技术解决了什么问题:

JSP + Servlet 解决静态网页的动态渲染问题,MySQL 解决数据存储的问题。

JavaWeb 技术是如何解决的:

  • 1:将所有的静态页面的数据进行结构化,存储到 MySQL 数据库中。

  • 2:JavaWeb 对 MySQL 的服务器提供客户端支持,Java可以通过数据库驱动去连接 MySQL 服务,去实现数据的维护工作,也就是 CRUD。

  • 3:Java 通过 JDBC 查询数据后把数据放到对象中,如果是多个数据就放到集合中。

  • 4:将存储数据的对象,通过 Servlet 放入到作用域中。

  • 5:通过 EL 表达式或者标签等技术,将作用域中的对象的数据提取出来渲染到 JSP 模板中。

具体的执行过程是怎么样的:

查询数据库数据 → Serlvet 放入到作用域中(request、session、application、pageContext)→ JSP 模板通过 EL 表达式 + 标签 → 将其作用域中存储的对象取出来动态替换。

查询数据库数据 → SpringMVC 放入到作用域中(ModelMap、Model、ModelAndView、request)→ Freemarker / Thymeleaf 模板通过 EL 表达式 + 标签 → 将其作用域中存储的对象取出来动态替换。

这个具体的执行过程其实就是经典 MVC 的开始架构设计模式。

MVC 架构设计提出的意义:

1:分层架构

2:解耦

3:各司其职(单一职能原则)

MVC 设计模式的由来

MVC 模式的概念:

MVC 模式并不是 JavaWeb 项目中独有的,MVC 是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),是一种软件设计的典范。

MVC 模式的详解:

控制器 Controller:控制请求的处理逻辑,对请求进行处理,负责请求转发,

视图 View:用户看到并与之交互的界面,比如 HTML(静态资源),JSP(动态资源)等等。

模型 Model:一种企业规范,也就是业务流程、状态的处理以及业务规则的规定。业务流程的处理过程对其他层来说是不透明的,模型接受视图数据的请求,并返回最终的处理结果。业务模型的设计可以说是 MVC 的核心。

MVC 模式的应用:

MVC 模式被广泛用于 Java 的各种框架中,比如早期的 Struts2 框架和目前市面上主流的 SpringMVC 框架都用到了这种思想。

JavaWeb 的经典三层架构

JSP Model1 第一代:

JSP Model1 是 JavaWeb 早期的模型,它适合小型 Web 项目,开发成本低。Model1 第一代时期,服务器端只有 JSP 页面,所有的操作都在 JSP 页面中,连访问数据库的 API 也在 JSP 页面中完成。也就是说,所有的东西都耦合在一起,对后期的维护和扩展极为不利。
JavaWeb和MVC三层架构

"""

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<html>
<head>
	<meta charset="UTF-8">
	<title>Title</title>
</head>
<body>
   <sql:query var="user" sql="select * from user">
		${user.id} == ${user.nickname}
   </sql:query>
</body>
</html>

"""
JSP Model1 第二代:

JSP Model1 第二代有所改进,把业务逻辑的内容放到了 JavaBean 中,而 JSP 页面负责显示以及请求调度的工作。虽然第二代比第一代好了些,但还让 JSP 做了过多的工作,JSP 中把视图工作和请求调度(控制器)的工作耦合在一起了。

JavaWeb和MVC三层架构

"""

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Title</title>
	</head>
	<body>
		<%
		Connection connection = null;
		PreparedStatement preparedStatement = connection.prepareStatement("sql");
		ResultSet resultSet = preparedStatement.executeQuery();
		resultSet.next();
		User user = new User();
		user.setId(1);
		user.setNickname("xpy");
		pageContext.setAttribute("user",user);
		%>
		${user.id}===${user.nickname}
		<jsp:useBean id="user" type="com.kuangstudy.bean.User" scope="page">
			<jsp:getProperty name="user" property="id"/>
			<jsp:getProperty name="user" property="nickname"/>
		</jsp:useBean>
	</body>
</html>

"""
JSP Model2:

  • JSP Model2 模式已经可以清晰的看到 MVC 完整的结构。

  • JSP:视图层,用来与用户打交道。负责接收用来的数据,以及显示数据给用户。

  • Servlet:控制层,负责找到合适的模型对象来处理业务逻辑,转发到合适的视图。

  • JavaBean:模型层,完成具体的业务工作,例如开启、转账等。

JavaWeb和MVC三层架构

JSP Model2 适合多人合作开发大型的 Web 项目,各司其职,互不干涉,有利于开发中的分工,有利于组件的重用。但是 Web 项目的开发难度加大,同时对开发人员的技术要求也提高了。

"""

@WebServlet("/test")
public class TestServlet extends HttpServlet {
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
		try {
			Connection connection = null;
			PreparedStatement preparedStatement = connection.prepareStatement("sql");
			ResultSet resultSet = preparedStatement.executeQuery();
			resultSet.next();
			User user = new User();
			user.setId(1);
			user.setNickname("xpy");
			request.setAttribute("user", user);
			request.getRequestDispatcher("index.jsp").forward(request,response);
		}catch (Exception ex){
			ex.printStackTrace();
		}
	}
	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	}
}

"""
"""

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<html>
<head>
	<meta charset="UTF-8">
	<title>Title</title>
</head>
<body>
	${user.id}===${user.nickname}
	<jsp:useBean id="user" type="com.kuangstudy.bean.User" scope="page">
		<jsp:getProperty name="user" property="id"/>
		<jsp:getProperty name="user" property="nickname"/>
	</jsp:useBean>
</body>
</html>

"""文章来源地址https://www.toymoban.com/news/detail-621304.html

到了这里,关于JavaWeb和MVC三层架构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深入剖析 MVC 模式与三层架构

    前面我们探讨了 JSP 的使用,随着计算机技术的不断更新迭代,JSP 的技术由于存在很多的缺点,已经逐渐退出了历史的舞台,所以在学习时,我们只需要了解其如何实现的数据的增删改查。不用刨根问底,花费大量的时间,得不偿失。 理解 JSP 及其原理 学会使用 EL 表达式和

    2024年02月22日
    浏览(106)
  • spring boot入门与理解MVC三层架构

    分层是为了实现“高内聚,低耦合”,把问题划分开来,各个解决,易于控制,延展和分配资源,最重要有利于后期维护项目; MVC指的是model,view,controller; 在SpringMVC编程中一般分为四层: 1.表示层:(jsp、html 主要就是界面的展示),负责前后端交互,接收前端发送的请求,

    2024年02月05日
    浏览(53)
  • 【Spring MVC】快速学习使用Spring MVC的注解及三层架构

    💓 博客主页:从零开始的-CodeNinja之路 ⏩ 收录文章:【Spring MVC】快速学习使用Spring MVC的注解及三层架构 🎉欢迎大家点赞👍评论📝收藏⭐文章 SpringWebMVC是基于ServletAPI构建的原始Web框架,从⼀开始就包含在Spring框架中。它的正式名称“SpringWebMVC”来⾃其源模块的名称(Spri

    2024年04月17日
    浏览(54)
  • MVC设计模式和与三层架构的关系

    M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为数据承载Bean:专门存储业务数据的,如 Student、User 等 一类称为业务处理Bean:指 Service 或 Dao 对象,专门用于处理业务逻辑和数据访问。 V:View,视图层,指工程中的html或jsp等页面,作用是与用

    2024年01月22日
    浏览(95)
  • MVC设计模式、JSP开发模式、三层架构&MVC练习学生信息管理系统

    本文将介绍MVC设计模式、JSP开发模式、三层架构和MVC练习的基本概念,并演示如何使用这些技术来构建一个学生信息管理系统。该系统将包括数据库准备、查询、增加、删除、更新和分页功能。 MVC是一种软件架构模式,将应用程序分为三个部分:模型(Model)、视图(View)和

    2023年04月25日
    浏览(94)
  • 迷不迷糊?前后端、三层架构和MVC傻傻分不清

    现在的项目都讲究前后端分离,那到底什么是前后端,前后端和以前的MVC以及三层架构啥关系呢?今天就这个问题展开一下,方面后面的学习,因为前面讲的jsp、servlet和javabean根据实例,基本上有一个框架的理解了,谁处理什么业务也大概清楚了,而且也提到了MVC这个东西,

    2024年03月08日
    浏览(62)
  • [Java]JavaWeb学习笔记(动力节点老杜2022)【Javaweb+MVC架构模式完结】

    视频地址:动力节点最新JavaWeb视频教程,javaweb零基础入门到精通IDEA版https://www.bilibili.com/video/BV1Z3411C7NZ?p=1vd_source=93ab990b9131a1b90943874a5448830a 资料链接:https://pan.baidu.com/s/1y-Dm0dGjQQOvARFBmGiG1w?pwd=1234 提取码:1234 【Tomcat服务器版本与支持Java版本的对应关系:https://tomcat.apache.org/whi

    2023年04月09日
    浏览(248)
  • Java复习第十八天学习笔记(MVC,三层架构,分页),附有道云笔记链接

    【有道云笔记】十八 4.4 MVC模式、三层架构、分页 https://note.youdao.com/s/PRQ62OUV 一、MVC MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范, 用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,

    2024年04月12日
    浏览(49)
  • 首选Spring MVC实战架构文档:GitHub上率先发布,引领技术革新

    Spring MVC是一个基于Java的Web框架,它遵循MVC设计模式,实现了请求驱动类型的轻量级架构。通过将Model、View和Controller分离,Spring MVC将Web层的职责进行了清晰的划分,使得复杂的Web应用程序变得结构清晰、易于开发和维护。 其中,DispatcherServlet是Spring MVC框架的核心组件。作为

    2024年02月02日
    浏览(49)
  • 批量插入数据、MVC三层分离

    八、批量插入数据 1、使用Statement() 2、使用PreparedStatement() 3、使用批量操作API 4、优化 九、MVC三层分离  

    2024年02月14日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包