需求:

	注册登录;

# 知识补充;
>> 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. XMemcached 中文api

    变更历史 2010-06-22 添加客户端分布和SASL验证两节,更新spring配置一节. 2010-06-23 添加maven依赖说明 2010-10-17 1.2.6 released 2011 ...

  2. Linux基础篇五:文件操作篇(三剑客)

    cut截取字段: -d  指定分割符 -f   指定第几列 例题1: echo "i am dusonglin ,my qq is  380343680 " >dusongl ...

  3. 吴裕雄--天生自然C语言开发:判断

    if(boolean_expression) { /* 如果布尔表达式为真将执行的语句 */ } #include <stdio.h> int main () { /* 局部变量定义 */ ...

  4. pytorch源码解析-动态接口宏

    动态库接口定义: gcc: 定义在动态库的显示属性: 作用对象: 函数.变量.模板以及C++类 default: 表示在动态库内可见 hidden: 表示不可见 #define EXPORT __at ...

  5. TZOJ-STL系列题

    C++实验:STL之vector #include <bits/stdc++.h> using namespace std; void Input(vector<int>&am ...

  6. [LC] 112. Path Sum

    Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all ...

  7. 71)PHP,使用cookie的语法问题

    1) 为啥用数组的形式,就是这样好区分,你看都是跟student相关的东西, (2)

  8. 学习C++之前要先学习C语言吗?

    C++ 读作“C加加”,是“C Plus Plus”的简称.顾名思义,C++ 是在C语言的基础上增加新特性,玩出了新花样,所以叫“C Plus Plus”,就像 iPhone 7S 和 iPhone ...

  9. dbSNP|n SwissVar|n CanProVar|CHPP|mutation assessor|

    癌症蛋白质基因组学主要研究driver性质的突变,该突变有可能是转化为癌基因的突变.抑癌基因突变.药物位点突变和蛋白突变,可以使用mutation assessor 预测突变 突变导致疾病,修饰仅影响 ...

  10. 会议信息|CNKI|AIAA|万方|AIP|CNKI|EI|CPCI|BP|INSPEC

    会议论文: 学术文献的三大支柱是期刊.专利和学位论文.会议论文是新的所以发文章快,灰色的,有些只有摘要,所以不容易获取. 有以下二次文献数据库,仅有摘要: CPCI BP:生物医学类 INSPEC在W ...