zoukankan      html  css  js  c++  java
  • 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
    					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类,用于封装注册界面的参数;
  • 相关阅读:
    BZOJ1800 fly 飞行棋 [几何]
    Cf #434 Div.1 D Wizard's Tour [构造题]
    Last mile of the way [树形dp+重链剖分]
    World Of Our Own [Lucas+思维题]
    vue 初级小总结
    转-redux-saga
    【转】react-native开发混合App-github开源项目
    react中路由的跳转
    Lodash 浓缩
    jq的attr、prop和data区别
  • 原文地址:https://www.cnblogs.com/bwcx1375/p/7106729.html
Copyright © 2011-2022 走看看