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类,用于封装注册界面的参数;
posted @ 2017-07-02 18:21  怀念-2018  阅读(228)  评论(0编辑  收藏  举报