需求:

	注册登录;

# 知识补充;
>> 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
email
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三层架构的更多相关文章

  1. MVC三层架构编程(Dao、service、servlet 之间的关系)

    木哈哈~先开心一会儿,人生的第一篇博客aaa.我一定好好写.不过之前也没怎么看别人写过,还是有点小激动呢,加油.好好总结,会总结的宝宝才会有提高! 今天想总结一下mvc三层架构模型编程,宝宝学习不怎么 ...

  2. Angular JS从入门基础 mvc三层架构 常用指令

    Angular JS从入门基础  mvc模型 常用指令 ★ 最近一直在复习AngularJS,它是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJS有着诸多特性,最为核心 ...

  3. 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理

    服务器文档下载zip格式   刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...

  4. MVC三层架构搭建

    MVC三层架构搭建 项目主要是用三层来搭建项目,三层分为表现层,数据层和业务层.项目用了目前比较流行的IOC架构.目前流行的IoC 框架有AutoFac,Unity,Spring.NET等,项目中选用 ...

  5. Asp.Net MVC三层架构之autofac使用教程

    开发环境:vs2015..net4.5.2.mvc5.ef6 Autofac简介 IOC控制反转(Inversion of Control,缩写为IOC),Autofac是一个开源的依赖注入框架,Au ...

  6. MVC三层架构模式编程思想 JSP-Servlet-JavaBean

    MVC(Mdodel-View-Controller)编程模式.把一个Java应用分成三层:模型层.视图层.控制层,各层分别实现各层的功能,整个过程见下图就一目了然了. watermark/2/tex ...

  7. MVC——三层架构笔记、1

    三层架构MVC笔记1. DAL——数据访问层:(专门与数据库交互,增删查改的方法都在这:需引用MODEL层) BLL——业务逻辑层:(页面与数据库之间的桥梁:需引用DAL.MODEL层) MODEL— ...

  8. 软件架构设计学习总结(18):MVC三层架构在各框架(jsp+servlet + Struts1+ Struts2+ springMVC)中的特征

    1.基于web开发中最原始的jsp+Servlet   图形化理解jsp+servlet结构: 1.从结构上分析jsp+servlet图解原理: 在基于mvc设计模式下的最原始的jsp+Servlet ...

  9. JSP--JSP语法--指令---九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构

    一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1. JSP模板元素:JSP中HTML标 ...

随机推荐

  1. springboot+solr基本使用

    接着上一篇的搭建 首先需要的pom节点有 <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data ...

  2. EMD——EEMD——CEEMD语音增强算法基础

    首先,HHT中用到的EMD详细介绍:https://wenku.baidu.com/view/3bba7029b4daa58da0114a9a.html 本文具体参考 https://zhuanlan ...

  3. RegexUtil

    package org.linlinjava.litemall.core.util; import java.util.ArrayList; import java.util.Collections; ...

  4. mac用python读取文件常见问题(未完成)

    python读取文件常见问题(mac版) 让python的默认编码,和文件的编码保持一致

  5. vue_webpack初始化项目

    整体架构:此处npm安装过于缓慢,因此使用的是淘宝的镜像cnpm vue+webpack 初始化项目:1.安装vue: cnpm install vue 检验版本: vue -V2.创建一个vue项目 ...

  6. SpringBoot开发二十-Redis入门以及Spring整合Redis

    安装 Redis,熟悉 Redis 的命令以及整合Redis,在Spring 中使用Redis. 代码实现 Redis 内置了 16 个库,索引是 0-15 ,默认选择第 0 个 Redis 的常用命 ...

  7. MOOC(15)- 接口异常处理

    首先通过fiddler拿到正确的传参 把value复制下来,存到json数据中,传参时通过键去json的值即可 但是运行请求的时候报错了 再运行,还是出错 查看fiddler结果 修改,从fiddle ...

  8. 吴裕雄--天生自然python学习笔记:python实现自动网页测试

    Python 可实现的网页测试的功能十分强大,甚至能通 过编程来实现让绝大多数的测试过程自动化. 这对很多开 发者来说,绝对是不可多得的神器. hash lib 纽件可以判别文件是否有过更改,只需要用 ...

  9. 框架之MyBatis

    什么是框架,简单的来说框架就是一个程序的半成品,而我们就是的工作就是根据我们的工作需要将其完善.MyBatis框架的作用就是将我们使用JDBC操作数据库的过程移交给MyBatis,让它来帮我们完成这些 ...

  10. java枚举与常量类的区别

    1)枚举型可以直接与数据库打交道,我通常使用varchar类型存储,对应的是枚举的常量名.(数据库中好像也有枚举类型,不过也没用过) 2) switch语句支持枚举型,当switch使用int.Str ...