Java Web实战 | MVC案例:用户登录验证

简介: 本文结合图1的多层设计架构,以用户登录验证应用程序为例,说明如何将MVC模式应用于Web应用程序的开发,具体步骤如下所述。
+关注继续查看

640.jpg


640.png


■ 图1 多层架构示意图

01、创建数据表

在jdbc数据库中创建一个名为account的数据表,用于存放用户名和密码。建表语句如下:

640.png

02、创建实体类

创建一个实体类Account,用于封装用户名和密码信息。其作用就是MVC中的M(模型)。代码如文件1所示。

【文件1】Account.java

640.png

03、创建DAO接口和实现类

专注于数据访问功能的组件称为DAO

(Data Access Object,数据访问对象)。为了避免应用程序与特定的数据访问策略耦合在一起,一个良好的设计方案是数据访问组件以接口的形式暴露功能。图2展示了数据访问层的合理设计方案,业务逻辑对象本身不会处理数据访问,而是将数据访问任务委托给数据访问对象。业务逻辑对象通过接口来访问DAO组件。

640.png


■ 图2数据访问层的设计方案

这样做会有两个好处。第一,业务逻辑对象易于测试,因为它不再与特定的数据访问组件绑定在一起。第二,持久化方式的选择独立于DAO接口,只有数据访问相关的方法通过接口暴露。这样的设计更加灵活,并且切换数据访问层的实现技术不会对应用程序的其他部分产生影响。如果将数据访问层的实现细节渗透到应用程序的其他部分,那么整个应用程序将与数据访问层耦合在一起,从而使得设计僵化。

针对数据访问层,本例使用Druid数据库连接池。接下来,创建AccountDao接口及其实现类,规定用户登录时要执行的数据库操作。由于DAO负责数据的存取,它也可被视为MVC中的M(模型)。AccountDao接口的代码此处省略,下面给出接口的实现类代码,如文件2所示。
【文件2】AccountDaoImpl.java

3232adbda429f81933a170d99fa039f0.png

04、创建Service接口和实现类

业务逻辑层的Service组件用于处理用户请求,并返回处理结果,可以被视为MVC中的C(控制器)。业务逻辑层与数据访问层的设计思路类似,需要设计的是Service接口及其实现类。这里的Service接口代码简单,因此只给出Service实现类的代码,如文件3所示。
【文件3】AccountServiceImpl.java

640.png


640.png


如文件3所示,因为Service组件需要数据访问(DAO)组件提供的服务,所以第8行将数据访问对象AccountDao作为私有属性并实例化。用接口声明是一个良好的设计方案,这里需要注意的是,Service组件只需要一个能够提供AccountDao功能的组件,而非具体指明是哪个组件。如果用下面的代码来声明:

640.png


则这种声明语句指明了具体的组件,显式声明了当前Service组件要用到AccountDaoImpl组件完成任务,这样会造成两个组件的耦合性增强。

第8行的写法降低了组件间的耦合性,并且由于数据持久化的实现由AccountDaoImpl组件负责,独立于AccountDao组件,由此带来的另一个好处便是在满足AccountDao接口要求的情况下,可以灵活替换数据访问组件。

05、创建Servlet

Servlet用于接收用户的请求,并将请求参数封装后交给Service组件进一步处理,它也是MVC中的C(控制器)。创建Servlet的代码如文件4所示。

【文件4】LoginServlet.java

47cefd1cde48b74a5f760773653cd2b8.png


b4b23760f1b29f5ce6f130e1eec08acf.png

如文件4所示,第23~26行获取请求参数,并把它们封装到Account对象中。第28~37行完成用户是否可以正常登录的判断,从而跳转到对应的页面。
06、创建JSP

创建表示层组件JSP,它是MVC模式中的V(视图)。在src/main/webapp文件夹下创建名为login.jsp的JSP文件,设计用户登录界!

最后,可以利用浏览器查看程序运行的效果。本例主要向大家展示如何应用MVC设计模式开发多层架构的Web应用程序,对于数据库保存用户密码的加密问题,用户登录权限的判断问题等都没有涉及,大家可结合过滤器等知识自行尝试完成。

目录
相关文章
|
15天前
|
JSON 前端开发 数据库
如何创建自己的 Mini MVC 框架(如何无框架写个 Web App)
如何创建自己的 Mini MVC 框架(如何无框架写个 Web App)
|
20天前
|
设计模式 前端开发 Java
使用Java MVC开发高效、可扩展的Web应用
本文将介绍如何使用Java MVC(Model-View-Controller)模式来开发高效、可扩展的Web应用。我们将深入探讨MVC模式的核心概念,以及如何在Java中实现这一体系结构。通过合理地分离业务逻辑、用户界面和数据处理,我们可以构建出易于维护和扩展的Web应用程序。
|
1月前
|
前端开发 Java 应用服务中间件
SpringMVC(基于Spring 的Web 层MVC 框架)--SpingMVC 执行流程--@RequestMapping的使用
SpringMVC(基于Spring 的Web 层MVC 框架)--SpingMVC 执行流程--@RequestMapping的使用
43 0
|
3月前
|
监控 前端开发 Java
【Java Web编程 十四】深入理解MVC架构模式(一)
【Java Web编程 十四】深入理解MVC架构模式(一)
38 0
|
3月前
|
设计模式 前端开发 JavaScript
【Java Web编程 十四】深入理解MVC架构模式(三)
【Java Web编程 十四】深入理解MVC架构模式(三)
27 0
|
3月前
|
前端开发 Java
【Java Web编程 十四】深入理解MVC架构模式(二)
【Java Web编程 十四】深入理解MVC架构模式(二)
37 0
|
3月前
|
存储 设计模式 前端开发
用 Python 撸一个 Web 服务器-第3章:使用 MVC 构建程序
用 Python 撸一个 Web 服务器-第3章:使用 MVC 构建程序
BXA
|
4月前
|
XML 缓存 前端开发
Spring MVC框架详解打造Web应用
Spring MVC是一个基于Java轻量级的、模型-视图-控制器(MVC)架构的Web框架,具有高度的灵活性和松耦合性。它专注于提供良好的开发体验和快速的开发效率。
BXA
66 0
|
5月前
|
前端开发 Java 测试技术
Java Web实战 | Spring MVC案例:设计一个简单的Web应用
本文通过一个简单的Web应用来演示Spring MVC入门程序的实现过程。具体步骤如下。
167 0
|
8月前
|
存储 设计模式 JSON
Spring MVC: 一种简洁且强大的Web应用框架
这篇文章介绍Spring MVC,Spring MVC是现在基本所有Java程序的主流开发框架,这篇文章主要介绍三部分内容: 实现用户和程序的映射(在浏览器输入URL地址之后,能够在程序中匹配到相应方法)。 服务器端得到用户的请求参数 服务器端将结果返回给用户(前端)
81 0
Spring MVC: 一种简洁且强大的Web应用框架
相关产品
云迁移中心
推荐文章
更多