JavaWeb之MVC设计模式

时间:2016-11-26 16:22

——MVC

MVC模式(Model - View - Controller)是软件工程中的一种架构模式,把软件系统分为三个基本部分:
        模型(Model)、视图(View)、控制器(Controller)

MVC模式最早为Trygve Reenskaug提出,为施乐帕罗奥多研究中心(Xerox PARC)的Smalltalk语言发明的一种软件设计模式。

MVC对程序的后期维护和扩展提供了方便,并且使程序某些部分的重用提供了方便,而且MVC也使程序简化,更加直观。

控制器(Controller):
        Servlet
        对请求进行处理,负责请求转发。
    视图(View):
        JSP
        界面设计人员进行图形界面设计。
    模型(Model):
        JavaBean
        编写程序应用的功能(实现算法等)、数据库管理。

MVC并不是Java所独有的,几乎所有的B/S结构的软件都采用了MVC设计模式,但是要注意,MVC在B/S结构软件中并没有完全实现,例如在今后的B/S软件中并不会有事件驱动。

——JavaWeb与MVC

JavaWeb经历了JSP Model1一代、JSP Model1二代、JSP Model2三个时期。
    具有特定功能的Java类,位于模型层。(po包,dao包,bl包‘service包‘)

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

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

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

1)JSP:视图层,用来和用户打交道,负责接收需要处理的数据,以及显示数据给用户。
    2)Servlet:控制层:负责找到合适的业务模型对象来处理业务逻辑,转发到合适的师视图。
    3)JavaBean:模型层,完成具体的业务工作,例如:开户,转账等。

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

结构图:

——JavaWeb三层架构

我们常说的三层架构是JavaWeb提出的,也就是说这是JavaWeb独有的。
    所谓三层架构是视图层(Web层)、业务逻辑层(Business Logic)以及数据访问层(Data Access)。

*   Web层:
                Servlet、JSP
                包含JSP和Servlet等与Web相关的内容,例如Request、Response、Session、ServletContext。
        *   业务层:
                Service
                例如登录、注册。
                业务层中不包含JavaWeb API,它只关心业务逻辑。
                因为如果包含了Web API,则无法在C/S中使用该业务层。
                一旦业务逻辑与Web层挂钩,只能在Web层完成逻辑实现。
        *   数据层:(持久层)
                DAO层,Database Access Object。
                封装了对数据库的访问细节,例如对数据库的增删改查。
                所有对数据库的操作,不能跳出DAO,因为一旦更换数据库,则牵扯到业务层等代码。

*   实体类:
                JavaBean

需要注意的是,在业务层中不能出现JavaWeb API,例如request、response等,也就是说,业务层代码是可重用的,甚至可以用用到非Web环境中,业务层的每个方法都可以理解成一个万能的,例如转账业务方法,业务层依赖数据层,而Web层依赖业务层。

分层架构:
        基于MVC,将JavaBean分为了业务层和数据层。

——Hello World

1、com.wyc.dao

public class UserDao {

/*

* 查询得到数据库中的数据之后,封装到User对象中,然后返回。

*/

public User find(){

return new User("zhangsan", "123");

}

}

2、com.wyc.domain

/**

* 将数据库中查询到的结果保存到这个对象中
     * @author 31067

*

*/

public class User {

private String username;

private String password;
        ....
    }

3、com.wyc.service

public class UserService {

//service层依赖dao层

private UserDao userDao = new UserDao();

//service层的查询,需要使用dao来完成。

public User find(){

return userDao.find();

}

}

4、com.wyc.web.servlet

public class UserServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

/*

* 在Servlet中依赖service,然后通过service完成功能,把结果保存到request中,然后转发到JSP页面进行显示

*/

UserService userService = new UserService();

User user = userService.find();

request.setAttribute("user", user);

//请求转发只能使用相对路径

request.getRequestDispatcher("show.jsp").forward(request, response);

System.out.println(request.getContextPath() + "/show.jsp");

}

}

5、index.jsp

<body>

<a href="${pageContext.request.contextPath }/UserServlet">dianji</a>

</body>

6、show.jsp

<body>

姓名:${user.username }

密码:${user.password }

</body>

流行框架:2016年11月26日16:21:32
        SSH:
            Struts2 + Spring + Hibernate

SpringMVC

SSM

时间: 2024-12-14 20:40:20

JavaWeb之MVC设计模式的相关文章

web day13 JSTL标签库(c标签,自定义标签),MVC设计模式,JavaWeb经典三层框架

JSTL 1. jstl的概述 *apache的东西,依赖EL * 使用jstl需要导入jstl1.2.jar * 四大库: > core:核心库,重点 > fmt:格式化:日期.数字 > sql:过时 > xml:过时 2. 导入标签库 *jar包 * 在jsp页面中:<%@taglib prefix="前缀" uri="路径"%> ---------------------- core --> c标签! 1. out和s

浅谈javaweb三大框架和MVC设计模式

一.MVC设计模式 1.MVC的概念 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller),即为MVC.它是一种软件设计的典范,最早为Trygve Reenskaug提出,为施乐帕罗奥多研究中心(Xerox PARC)的Smalltalk语言发明的一种软件设计模式. 2.MVC的详解 虽然MVC并不是Java当中独有的,但是现在几乎所有的B/S的架构都

MVC设计模式JavaWeb实现

JSP开发模式 jsp开发模式的发展 1.模式1:(适合小型项目的技术的开发) a.第一版本号.纯jsp(封装数据.处理数据,显示数据) b.第二版本号,Jsp+JavaBean. jsp:收集数据,显示数据 JavaBean:封装.处理 2.模式2:servlet+Jsp+JavaBean(是mvc在java中的详细的实现,是java技术实现的详细的内容) a.servlet:负责协调jsp和javabean,获得数据,处理数据(业务逻辑),封装到javabean中,选择jsp去显示数据. b

javaweb三大框架和MVC设计模式

javaweb三大框架和MVC设计模式 转载,原文请见https://blog.csdn.net/sunpeng19960715/article/details/50890705 一.MVC设计模式 1.MVC的概念 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller),即为MVC.它是一种软件设计的典范,最早为Trygve Reenskaug提出,为

MVC设计模式((javaWEB)在数据库连接池下,实现对数据库中的数据增删改查操作)

设计功能的实现: ----没有业务层,直接由Servlet调用DAO,所以也没有事务操作,所以从DAO中直接获取connection对象 ----采用MVC设计模式 ----采用到的技术 .MVC设计模式,JSP,Servlet,POJO .数据库使用mysql .数据库连接池需要使用C3P0数据库连接池 .页面上的提示需要使用jQuery ----技术难点 .多个请求如何使用一个Servlet .如何模糊查询 .如何在创建和修改的情况下,验证用户信息是否已被使用,并给出提示 ---------

个人对JavaWeb中MVC与三层架构的区别理解

JavaWeb中MVC是指B/S结构开发中的一种设计模式,能够将Web页面与业务逻辑以及数据库操作之间的耦合性降到最低点,易于代码的重用以及后期维护.而三层架构的概念在JavaWeb中则是指Web层,业务层,数据层.但三层架构中却是把MVC中的Model,也就是JavaBeans分成业务层和数据层,而把Controller控制器以及View视图合并成Web层.二者之间最大的区别在于MVC只限于JavaWeb,而三层架构则能够实现在非Web应用平台之上,只需替换掉Web层足以,而业务层与数据层依旧

python mvc设计模式(一)

一.代码组织(目录结构) 二.mvc概述 MVC设计模式即MVC框架. MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑和数据显式分离的方法组织代码,将业务逻辑被聚集到一个部件里面,在界面和用户围绕数据的交互能被改进和个性化定制的同时而不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 三.代码 1.数据 #cod

Java Web开发中MVC设计模式简介

一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条理性,对于一个小型的网站这样的编写没有任何问题,但是一但我们需要编写大型的web工程的话,我们现有的编写模式会造成web应用的可扩展性较差,而且一但出现问题不能准确的定位出问题出在哪里. Java是一门应用设计模式比较广泛的语言.目前主流提出的23种设计模式均可在Java语言编写的程序中所应用.目前

转---MVC设计模式详解

MVC(Model View Controller)模型(model)-视图(view)-控制器(controller):MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式.比如一批统计数据你可以分别用柱状图.饼图来表示.C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新,从例子可以看出MVC就是Observer设计模式的一个特例.MVC如何工作MVC是一个设计模式,它强制性