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轻 ...
随机推荐
- ViewPager,实现真正的无限循环(定时+手动)
利用定时器,实现循环轮播,很简单:只需在定时器的消息里加如下代码即可: int count = adapter.getCount(); if (count > 1) { // 多于1个,才循环 ...
- Uva 725 Division
0.不要傻傻的用递归去构造出一个五位数来,直接for循环最小到最大就好,可以稍微剪枝一丢丢,因为最小的数是01234 从1234开始,因为倍数n最小为2 而分子是一个最多五位数,所以分母应该小于五万. ...
- Codeforces Round #371 (Div. 2) - A
题目链接:http://codeforces.com/contest/714/problem/A 题意:有两个人A,B 给定A的时间区间[L1,R1], B的时间区间[L2,R2],然后在正好K分钟的 ...
- HTTP基础11--web(3)
邮件首部注入攻击 指 Web 应用中的邮件发送功能,攻击者通过向邮件首部 To 或 Subject 内任意添加非法内容发起的攻击.利用存在安全漏洞的 Web 网站,可对任意邮件地址发送广告邮件或病毒邮 ...
- PHP 汉字转拼音
<?php/** *+------------------------------------------------------ * PHP 汉字转拼音 *+----------------- ...
- node入门 express ejs
hello.js var express = require("express"); var app = express(); app.get("/hello" ...
- 关于jquery中 跳出each循环的方法
最近在项目中用带了jquery,在使用each循环遍历时在满足一定条件就跳出,发现break不好使,最终原来 用 return false;便可解决.
- 【转】Myeclipse建立Maven项目
原文地址: http://b-l-east.iteye.com/blog/1246482 1. 使用Maven创建webapp工程----原因是使用Maven时一般需要遵循一定的目录结构,虽然也可以使 ...
- Python基础7- 流程控制之循环
循环: 把一段代码重复性的执行N次,直到满足某个条件为止. 为了在合适的时候,停止重复执行,需要让程序出现满足停止循环的条件.Python中有三种循环(实质只有两种): while循环 for循环 嵌 ...
- CSS中文字体对照表
http://hotoo.googlecode.com/svn/trunk/labs/css/css-fonts.html CSS中文字体对照表 css字体名可以使用2种Unicode格式,以“微软雅 ...