13.MVC开发模式(我的JavaEE笔记)

MVC开发模式

MVC模式是指Servlet(Controller)、JavaBean(model)、jsp(View)。
下面的途中我们给出了这种模式的详细组成部分和访问过程,但是只是一个简图,后面还会有监听器和过滤器等没有加上:

13.MVC开发模式(我的JavaEE笔记)_第1张图片
三层架构图.png

开发中不同功能的类会放在不同的包中,这样便于管理,而每一层都会编写相关的接口,这样避免某一层的改动影响别的层
Servlet:cn.itcast.web.controller

Service接口:cn.itcast.service

Service实现:cn.itcast.service.impl

dao接口:cn.itcast.dao

dao实现:cn.itcast.dao.impl

JavaBean:cn.itcast.domain(bean)

JSP:jsp一般不允许外界直接访问,所以会在 WEB-INF 中新建一个文件夹JSP或pages用于存放不同的jsp文件。

工具类:cn.itcast.utils

过滤器filter:cn.itcast.web.filter

监听器listener:cn.itcast.web.listener

注意:在对包命名时,前面的cn.itcast一般都是公司的名字反过来写,后面的名字在实际开发中一般都是通用的。

案例:使用上述模式完成用户注册和登录

1.搭建开发环境

1.1 导入项目所需的开发包(直接放在WEB-INF/lib中,会自动加载)

DOM4J:dom4j-1.6.1.jar
Xpath:jaxen-1.1-beta-6.jar(DOM4J中)
BeanUtils:commons-beanutils-1.9.2.jar
BeanUtils依赖的日志包:commons-logging-1.2.jar
JSTL相关包:jstl.jar,standard.jar但是在高版本的MyEclipse中已经集成了这两个包。

1.2 创建程序的包名

JavaBean:cn.itcast.domain(存放数据实体)
dao接口:cn.itcast.dao(从实现中直接抽取出接口)
service接口:cn.itcast.service
service实现:cn.itcast.service.impl(处理servlet中实际的任务)
servlet:cn.itcast.web.controller(处理登录,注册,注销等任务)
UI:cn.itcast.web.UI (user interface)(存放为用户提供用户界面servlet,此界面将调用相关的jsp页面进行跳转)
工具包:cn.itcast.utils
调试包:junit.test
异常处理包:cn.itcast.exception
返回表单数据封装包:cn.itcast.web.formbean
Jsp文件夹:在WEB-INF/jsp目录,保存jsp页面

1.3 在类目录src下面,创建用于保存用户数据的xml文件(users.xml)

2、开发实体user(bean)

private String id;
private String username;
private String password;
private String email;
private Date birthday;

3、开发dao(cn.itcast.dao.impl)

3.1 开发UserDaoXmlImpl.java(cn.itcast.utils)

public void add(User user)
public User find(String username)
public User find(String username,String password)       

3.2 抽取接口UserDao(cn.itcast.dao)

3.3 开发工具类: XmlUtils (cn.itcast.utils)

3.4 开发测试类:(junit.test)

4、开发service(对web层提供所有的业务服务)(cn.itcast.service.impl)

4.1 开发BusinessService

public void registerUser(User user) throws UserExistException
public User loginUser(String username,String password);

4.2提取出接口(cn.itcast.service)

5、开发web层

5.1 开发注册

5.1.1 写一个RegisterUIServlet(cn.itcast.web.UI)为用户提供注册界面,它收到请求,跳到register.jsp(jsp)

5.1.2 写register.jsp

5.1.3 register.jsp提交请求,交给RegisterServlet(cn.itcast.web.controller)处理

5.1.4 写RegisterServlet

1.设计用于校验表单数据RegisterFormbean

2、写WebUtils工具类,封装请求数据到formbean中

3、如果校验失败跳回到register.jsp,并回显错误信息

4、如果校验通过,调用service向数据库中注册用户

5.2 开发登陆

5.2.1 写一个LoginUIServlet(cn.itcast.web.UI)为用户提供注册界面,它收到请求,跳到login.jsp(jsp)

5.2.2 login.jsp提交给LoginServlet(cn.itcast.web.controller)处理登陆请求

注意:本项目的相关注释都在工程中,这里不再详述(工程day09_user)。

注意:我们在测试的之后不应该查看src下面的users.xml,因为我们还没有部署到服务器中,此时src下的xml文件是不会有任何改动的,因为我们所有的java类都会放在classes目录中,同样改动之后的users.xml文件也会在此目录中。同时在MyEclipse中写好一个实现类之后可以直接抽取其抽象类。选中类-右键-Refactor-Extract Interface进行抽取,抽取之后需要将类移动到抽象类接口包中,但是我们在开始创建包时,如果创建了一个包的子包,那么父包就会被隐藏,这样我们移动应该选中类-右键-Refactor-Move-选择响应的包。

注意:对于需要我们处理的异常,必须放在一个异常包中,同时一个类如果是一个异常类,则在创建时其继承的父类必须是java.lang.exception。在运行过程中如果出现找不到类这样的问题,一般会是需要导入相应的jar包或路径中有空格或汉字。同时,在断点调试的时候如果不不能进入断点指向的那行代码,则可以试着关闭工程和服务器,再重新开启。

你可能感兴趣的:(13.MVC开发模式(我的JavaEE笔记))