栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

以用户注册功能模块为例浅谈MVC架构下的JavaWeb开发流程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

以用户注册功能模块为例浅谈MVC架构下的JavaWeb开发流程

JavaWeb应用开发,撇开分布式不谈,只讨论一个功能服务应用的开发,无论是使用原生的Servlet/JSP方案,还是时下的SSM架构,都有一套经过工程实践考验的最佳实践,这综合考虑了团队协作、项目管理、可用性等方方面面的问题。

一些约定

考虑到项目管理的方便,一般前端不能直接访问到jsp页面,而是必须通过Servlet来管理到Jsp页面的跳转

注册

在以上的超链接中,通过定位到继承了baseServlet类的UserServlet的registUI方法,来处理跳转的功能。

public String registUI(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        return "/jsp/register.jsp";
    }

MVC架构下开发步骤:更多Java学习教程薇老师:hua2021ei

首先,以用户注册这一功能模块为例,其服务端的逻辑如图所示:

一般来说,一个功能模块包括许多的业务功能点,比如用户注册,就包括用户名校验、注册、发送激活邮件、发送验证短信等等具体的功能点。这些功能点就体现在不同Servlet(或者action或者Controller)的业务方法里,而所用的方法又会调用到Service包和Dao包中的增删改查原子方法。

根据服务端的运行逻辑,一般的开发流程包括

1. 页面准备

包括表单属性添加修改、拼接超链接、添加Ajax等

 1 
 2         会员注册USER REGISTER   
 3         
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 40 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 75 76 77
78

2. 在对应的功能模块Servlet中,添加功能点的方法实现

可以通过添加注释分解步骤,逐步完善业务代码逻辑。

 1 //用户注册模块的注册功能点
 2     public String userRegist(HttpServletRequest request, HttpServletResponse response) throws Exception {
 3         // 接收表单参数
 4         Map map = request.getParameterMap();
 5         //新建User对象
 6         User user = new User();
 7         //调用Utils的popultae方法为User对象赋值
 8         //MyBeanUtil封装了Apache Common的BeanUtil方法, 添加了转换时间格式的代码
 9         MyBeanUtils.populate(user, map);
10         // 为用户的其他属性赋值,如用户编号, 状态码, 激活码
11         user.setUid(UUIDUtils.getId());
12         user.setState(0);
13         user.setCode(UUIDUtils.getCode());
14         System.out.println(user);
15 
16         
23 
24         // 注册功能点封装在业务层中
25         UserService UserService = new UserServiceImp();
26         try {
27             UserService.userRegist(user);
28             // 注册成功,向用户邮箱发送信息,跳转到提示页面
29             // 调用MailUtils方法, 发送邮件
30             MailUtils.sendMail(user.getEmail(), user.getCode());
31             request.setAttribute("msg", "用户注册成功,请激活!");
32 
33         } catch (Exception e) {
34             // 注册失败,跳转到提示页面
35             request.setAttribute("msg", "用户注册失败,请重新注册!");
36 
37         }
38         return "/jsp/info.jsp";
39     }

3. 完善Service包下的接口和实现类

UserService接口

1 public interface UserService {
2 
3     void userRegist(User user) throws SQLException;
4 
5 }

UserServiceImp接口实现类

 1 public class UserServiceImp implements UserService {
 2 
 3     @Override
 4     public void userRegist(User user) throws SQLException {
 5         
 6         //实现注册功能
 7         UserDao UserDao=new UserDaoImp();
 8         UserDao.userRegist(user);
 9     }
10 
11 }

4. 完善Dao包下的接口和实现类

UserDao接口

1 public interface UserDao {
2 
3     void userRegist(User user) throws SQLException;
4 
5 }

UserDaoImp接口实现类

 1 public class UserDaoImp implements UserDao {
 2 
 3     @Override
 4     public void userRegist(User user) throws SQLException {
 5         String sql="INSERT INTO USER VALUES(?,?,?,?,?,?,?,?,?,?)";
 6         QueryRunner qr=new QueryRunner(JDBCUtils.getDataSource());
 7         Object[] params={user.getUid(),user.getUsername(),user.getPassword(),user.getName(),user.getEmail(),user.getTelephone(),user.getBirthday(),user.getSex(),user.getState(),user.getCode()};
 8         qr.update(sql, params);
 9     }
10 
11 }


总结

基本上所有的基于MVC思想的架构开发,都可以遵循这样的逻辑,来逐步完善应用代码。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/770702.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号