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标 ...
随机推荐
- Perl: print @globbing."\n"; 和 print @globbing; 不一样,一个已经转换为数组元素个数了
48 print @globbing."\n"; 输出: 3
- Jarque-Bera test|pp图|K-S检验|
Jarque-Bera test: 如何绘制pp图? 找该直线的截距和斜率,通过截距和斜率的值找到正态参数均值和方差,可对这些正态参数进行正态检验. K-S检验的的特点? 并不是只针对正态分布,是 ...
- VSTO外接程序项目只用1个文件实现Ribbon CustomUI和CustomTaskpane定制【C#版】
VSTO中的自定义功能区和自定义任务窗格需要用到各种命名空间.添加所需文件,才能实现.后来我发现可以把所有代码都写在ThisAddin.cs这个默认文件中. 大家可以在Visual Studio中创建 ...
- 《C Prime Plus》第八节笔记
第八节 字符输入/输出和输入验证 8.1 单字符I/O:getchar()和putchar() getchar()和putchar()包含在stdio.h头文件中 8.2 缓冲区 无缓冲输入: 直接回 ...
- spring-boot jpa mysql emoji utfmb4 异常处理
spring-boot jpa mysql utf8mb4 emoji 写入失败 mysql database,table,column 默认为utf8mb4 Caused by: java.sql. ...
- 函数动态参数和Python中的三种空间
动态参数 : *args 实参角度: 定义一个函数时, * 将所有的位置参数聚合到一个元祖中 顺序 : 位置参数 > * args > 默认参数 > **kwargs 接受所有参数 ...
- 通过HTTP向kafka发送数据
在大数据整个处理流程过程中,数据的流向是一个很重要的问题,本篇博客主要记录数据是怎么从http发送到kafka的. 使用技术点: 1. java的Vert.x框架 (关于java框架Vert.x的使用 ...
- 【Linux_Shell 脚本编程学习笔记五、Oracle JDK1.8 安装shell 脚本】
脚本使用说明: 首先在脚本的同级目录下有个 jdk的安装包 脚本和安装包必须在同级目录下才能够安装(脚本没有优化,还可以使用 wget 从网上下载指定版本的 jdk 安装包) #!/bin/sh ...
- JDBC介绍和Mybatis运行原理及事务处理
本博客内容非自创,转载自以下三位,侵删: https://juejin.im/post/5ab7bd11f265da23906bfbc5 https://my.oschina.net/fifadxj/ ...
- javaee验证码如何使用
首先需要导入jar包 ValidateCode.jar 110 25 为验证码框的大小 4为验证码数目 9为干扰线条数 Servlet代码如下 运行截图如下