MVC三层架构
需求:
- 注册登录;
- # 知识补充;
- >> MVC模型;
- |-- M 模型;
- |-- V 视图;
- |--
- >> 基本概念;
- |-- 层级之间的调用关系;
- |-- V层接收前台数据,也反馈C层处理完毕的M层数据;
- |-- C层负责操作前台数据并调用M层;
- |-- M层负责存储数据;
- >> M层;
- 一般由javaBean充当;
- |-- 业务模型;
- |-- 对应三层结构中间的业务逻辑层;
- |-- 三层结构简析;
- > 表示层;
- > 业务逻辑层;
- > 数据访问层;
- ---------------
- > 业务实体层;
- > 控制层;
- > 工具类
- |-- 注意;
- > MVC不属于三层结构;
- |-- 命名规范
- com.itheima.service
- com.itheima.service.impl
- |-- 数据模型;
- |-- 对应三层结构的数据访问层;
- |-- 命名规范
- com.itheima.dao
- com.itheima.dao.impl
- |-- 实体模型;
- |-- 命名规范
- com.itheima.domai
- >> V层;
- 一般由jsp/html来充当;
- >> C层;
- 一般由servlet/action来充当;
- |-- 命名规范
- com.itheima.web.controller
- com.itheima.web.form
- # 案例开始的准备工作;
- >> 使用xml存储数据;
- |-- 导入需要使用的jar包
- > dom4j
- > dom4j-xx.jar
- > jaxen-xx.jar
- > beanutils
- > commons-beanutils-xx.jar
- > commons-log4j--xx.jar
- |-- 准备xml文件
- |-- 数据结构;
- > 操作子节点
- user
- ursername
- password
- birthday
- > 操作属性;
- <user username="" password="" ...>
- >> 准备实体类;
- >> 实现Dao的接口设计;
- |-- dao的实现类;
- |-- 为了实现xml文件更好的操作,做一个单独的工具类;
- >> Dao实现类及单元测试;
- # 步骤;
- >> 建立XML
- >> 建立userbean类;
- >> 建立UserDao --- Interface
- |-- 定义内部方法;
- > addUser(User user);//添加用户
- > User getUserByUsername(String username);//判断用户是否存在;
- > User getUserByUsernameAndPassword(String username,String password);//登录时校验用户名和密码的匹配;
- >> 建立Dom4jUtil工具类;
- |-- 定义内部方法;
- > Document getDoument(){
- 获取并返回Document对象;
- }
- > static{
- 获取类加载器;
- 获取users.xml文件路径;
- 获取这个文件的绝对路径;
- }
- > writeDocument2Xml(){
- 获取XMLWriter 对象,在构造参数中接收文件和书写格式;
- 将其写入document对象;
- 关流;
- }
- >> 建立UserDaoImpl类,实现UserDao接口;
- |-- 实现接口中的具体方法;
- > 得到Document 对象
- > 得到根节点;
- Element root =document.getRootElement();
- > 添加一个新节点
- Element userEle= root.adElement("user");
- > 添加四个属性及对应值;
- userEle.addAttribute("username",df.format(user.getUsername())).addAttribute("password",user.getPassword()).addAttrubiute("birthday",user.getBirthday()));
- > 回写入XML文件;
- Dom4jUtil.writeDoucment2XML(document);
- |-- User getUserByUsername(String username);
- > 得到Document对象;
- > 用xpath查找节点;
- > 进行判断;
- |-- 如果不为空
- > 封装属性;
- > 在遇到日期属性时,需要用BeanUtils中的方法对其进行转换;
- >> 建立Test类,进行JUniut单元测试;
- >> 建立UserService接口,实现业务逻辑;
- |-- regist(User user)// 注册方法;
- |-- 判断该用户名是否可用;
- |-- 是:注册;
- > 判断u是否为空;
- > 是空则添加;
- >否则...
- |-- 否;抛出已存在异常;
- |-- login(String username,String password)
- >> 建立自定义异常类;
- >> 建立index.jsp/longin.jsp/register.jsp;
- >> 建立ControllerServlet类,用于进行操作控制;
- >> 建立UserFromeBean类,用于封装注册界面的参数;
MVC三层架构的更多相关文章
- MVC三层架构编程(Dao、service、servlet 之间的关系)
木哈哈~先开心一会儿,人生的第一篇博客aaa.我一定好好写.不过之前也没怎么看别人写过,还是有点小激动呢,加油.好好总结,会总结的宝宝才会有提高! 今天想总结一下mvc三层架构模型编程,宝宝学习不怎么 ...
- Angular JS从入门基础 mvc三层架构 常用指令
Angular JS从入门基础 mvc模型 常用指令 ★ 最近一直在复习AngularJS,它是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJS有着诸多特性,最为核心 ...
- 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理
服务器文档下载zip格式 刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...
- MVC三层架构搭建
MVC三层架构搭建 项目主要是用三层来搭建项目,三层分为表现层,数据层和业务层.项目用了目前比较流行的IOC架构.目前流行的IoC 框架有AutoFac,Unity,Spring.NET等,项目中选用 ...
- Asp.Net MVC三层架构之autofac使用教程
开发环境:vs2015..net4.5.2.mvc5.ef6 Autofac简介 IOC控制反转(Inversion of Control,缩写为IOC),Autofac是一个开源的依赖注入框架,Au ...
- MVC三层架构模式编程思想 JSP-Servlet-JavaBean
MVC(Mdodel-View-Controller)编程模式.把一个Java应用分成三层:模型层.视图层.控制层,各层分别实现各层的功能,整个过程见下图就一目了然了. watermark/2/tex ...
- MVC——三层架构笔记、1
三层架构MVC笔记1. DAL——数据访问层:(专门与数据库交互,增删查改的方法都在这:需引用MODEL层) BLL——业务逻辑层:(页面与数据库之间的桥梁:需引用DAL.MODEL层) MODEL— ...
- 软件架构设计学习总结(18):MVC三层架构在各框架(jsp+servlet + Struts1+ Struts2+ springMVC)中的特征
1.基于web开发中最原始的jsp+Servlet 图形化理解jsp+servlet结构: 1.从结构上分析jsp+servlet图解原理: 在基于mvc设计模式下的最原始的jsp+Servlet ...
- JSP--JSP语法--指令---九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构
一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1. JSP模板元素:JSP中HTML标 ...
随机推荐
- Lamda过滤替换List元素的属性值
import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List; ...
- 系统学习javaweb4----CSS层叠样式表(结束)
摘要:这几天临近过年,事情有点多,学习总是段段续续的,今天总算完成了CSS的基本知识学习. 学习笔记: 西瓜学习javaweb 1.css简述. 1.1 css是什么?有什么作用? HTML----- ...
- GitHub 代码仓库提示:“We found a potential security vulnerability in one of your dependencies”
github代码仓库提示:“We found a potential security vulnerability in one of your dependencies” 问题描述: Github上 ...
- 快手为什么要全资收购Acfun?
近日据媒体报道,快手已完成对「Acfun」以下简称A站的全资收购.未来A站仍将保持独立品牌和独立运营以及原有团队的独立发展.近年来,A站可谓命途多舛.相比隔壁B站风风光光顺利上市且成为真正的二次元大本 ...
- Leetcode13_罗马数字转整数
题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1. ...
- 安装rpm包时遇到error: Failed dependencies:错误
在linux下安装rpm包时经常会遇到下面这个问题: error: Failed dependencies: ............................................. ...
- Spring常见的两种增强方式
一.编程式增强 不借助spring的配置,通过自己实例化对象来实现的增强方式 创建增强类,需要实现你需要的增强接口,(只有实现了该接口,这个类就是一个通知)) /** * 增强类 */ public ...
- DOCKER中centos7的中文支持
直接编写看下能否改变成识别中文字体 写到你的~/.bashrc里吧,然后重启终端(我写的是英文的啊,改成你要的) export LC_ALL=en_US.UTF-8 export LANGUAGE=e ...
- 10X genomics|cell base|in-vivo based|model organisms|SBI|
生命组学-药物基因组学 精准医学的内容有个人全基因组测序,移动可穿戴设备,它可以实时监测,深度学习模型预测疾病,对疾病预测做到有效.安全和可控. 药物基因组学就是研究疾病.化合物和靶点之间的关系,关键 ...
- stress施压案例分析——cpu、io、mem【命令分析】
stress施压命令分析 一.stress --cpu 1 --timeout 600 分析现象?负载为啥这么高?top命令查看用户进程消耗的cpu过高(stress进程消耗的) 分析现象,可以看出 ...