Java web MVC开发模式入门感悟
当我进行第一个完整的java web项目的开发时,对以前所学的Java web知识体系有了一个清晰的进阶认识。我觉得非常有必要对此进行必要的总结。
MVC,意指model(数据持久层)+viewer(视图层)+control(控制层)的基本开发组合模式。
MVC的开发优势是非常明显的,model层由javaBean以及service等主要组成,Bean主要完成数据的持久获取,例如从数据库中获取数据赋给bean对象,借助访问权限的特性,使其属性只能通过方法访问获取,而不能直接访问其属性,service部分主要是用bean部分的数据做业务逻辑处理返回所需的数据。
view层是视图层,用来表达内容,JSP页面是在html页面中加入了可以解释java代码的“编译器”,使jsp页面可以在表达内容的基础上也拥有了处理业务逻辑的能力。当JSP页面有可以处理数据的能力后,它可以接收来自其他页面或程序传来的数据,并将这些数据显示出来,为了更好更方便表达数据内容,又为其提供了el与jstl标签,这些标签可以存取服务器上各种域内的属性等内容,常见的域有“request,session,application,response”,每个域的生命周期是不一样的,要想准确存取值,就要对域的生命周期了解清楚,这里需要提醒的是。jsp页面也可以处理业务逻辑,所以意味着它可以替代处理控制层的事情,但这样就有悖于简洁高效清晰的理念(就像html与css和js一样),并且会显得视图层混乱与臃肿,不利于再次开发与维护。
control层是控制层,它一般在web中由servlet文件实现,它从JavaBean或者service和各域中提取数据,对数据做逻辑处理,完成相关功能,对得到的数据通过域的属性和域的生命周期的特性向视图层传去所需数据。控制层是MVC的灵魂所在,是最关键的地方,因为业务在这里处理实现。说到底,就是在这里进行Java程序设计。但在实际开发中,为了进一步简化servlet,开发人员们弄出了很多开发模式,这里以工厂方法为例,开发人员面向接口开发,具体过程是:
首先,确定有哪些模块,为每个模块定义一个接口(DAO),接口内设计该模块实现所需的抽象的方法;
然后,定义一个借口实现类(DAOImpl),在里面设计与实现DAO层里的所有抽象方法。
这样,在servlet文件中只需调用这个实现类里的方法,就可以实现相关功能,不用再去做具体设计。
另外,为每个接口设计一个工厂(Factory)类,其中定义static方法返回一个接口实现类的实例对象,即每次用工厂类名调用这个静态方法及能生产出一个实现接口的实例对象来,形似工厂,所以称为工厂方法。(我是入门级程序员,这些是我做完一个小项目的感悟。)
Java web MVC开发模式入门感悟的更多相关文章
- java之MVC开发模式
友情提醒:eclipse创建servlet不会帮你同步创建一个web.xml配置文件:所以建议使用MyEclipse! 1.View层(jsp) <form action="javaw ...
- SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。
熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...
- java web轻量级开发面试教程摘录,java web面试技巧汇总,如何准备Spring MVC方面的面试
本内容摘自 java web轻量级开发面试教程 https://baike.baidu.com/item/Java%20Web%E8%BD%BB%E9%87%8F%E7%BA%A7%E5%BC%80% ...
- Java基础85 MVC开发模式
1.MVC开发模式 本文用 Servlet+JSP+javaBean 的开发模式来讲解 Model:用javabean实现,用于封装业务数据View:用jsp实现,用于显示数据Controller:用 ...
- java web方面的面试问题,Spring MVC方面的面试问题,摘自java web轻量级开发面试教程
本文摘自java web轻量级开发面试教程: https://baike.baidu.com/item/Java%20Web%E8%BD%BB%E9%87%8F%E7%BA%A7%E5%BC%80%E ...
- 什么是MVC开发模式以及它和传统开发模式的区别
Model1模式:使用纯JSP或者JSP+JavaBean开发,存在如下缺陷:JSP页面中混合了HTML和JAVA代码,从而给代码的开发和阅读带 来了麻烦:系统后期维护和扩展非常困难,例如在JSP页面 ...
- 如何用比较快速的方法掌握Spring的核心——依赖注入,Java web轻量级开发面试教程 读书笔记
我们知道,Java方面的高级程序员一定得掌握Spring的技能,其中包括Spring 依赖注入(IOC),面向切面(AOP),和数据库的整合(比如和Hibernate整合或声明式事务等)以及Sprin ...
- java web 入门级 开发 常用页面调试方法
这里介绍一下Java web 入门级开发中常用的代码调式方法; ( 仅供入门级童靴 参考) ; 工具: chrome 浏览器 (版本越高越好); Java web 入门级开发 主要就是两个方面: ...
- 面试时,当你有权提问时,别客气,这是个逆转的好机会(内容摘自Java Web轻量级开发面试教程)
前些天,我在博客园里写了篇文章,如何在面试中介绍自己的项目经验,收获了2千多个点击,这无疑鼓舞了我继续分享的热情,今天我来分享另外一个面试中的甚至可以帮助大家逆转的技巧,本文来是从 java web轻 ...
随机推荐
- Java学习笔记(四)——流程控制语句
一.条件语句 1.if条件语句 (1)语法: if(条件) { 条件成立时的代码 } (2)执行过程 2.if else语句 if(条件) { 条件成立时的代码 } else { 不成立的代码 } 3 ...
- document.body.scrollTop
标准浏览器:document.documentElement.scrollTop; 谷歌浏览器:document.body.scrollTop; var scrollTop = document.do ...
- LoadRunner测试场景中添加负载生成器
如何在LoadRunner测试场景中添加负载生成器 本文对如何在LoadRunner的测试场景中添加负载生成器,如何使用负载生成器的方法,总结形成操作指导手册,以指导测试人员指导开展相关工作. 1.什 ...
- python图像卷积
import cv2import numpy as np #filier 2Dsavepath = "E:\\"image = cv2.imread('E:\\me.jpg');c ...
- hdu1166 线段树
Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任 ...
- mac OS X操作 -- 常用
显示/隐藏默认隐藏文件:defaults write com.apple.finder AppleShowAllFiles -bool true/false 重置ROOT密码: http://www. ...
- hdu 4000Fruit Ninja 树状数组
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...
- DELPHI与C#语法比较
1.我做了三年的.NET,也是三个月前因为项目需要转的delphi整个过渡差不多要一周到两周.正常情况两周后就能熟悉delphi.delphi可以调整开发环境的,你把他的属性和解决方案窗口调成和你用V ...
- oracle视图
视图 SELECT -- int.rowner "rgroup owner", -- int.rname "refresh group", mv.owner a ...
- Air Raid[HDU1151]
Air RaidTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...