暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

264

本文结合图7-3的多层设计架构,以用户登录验证应用程序为例,说明如何将MVC模式应用于Web应用程序的开发,具体步骤如下所述。

■ 图7-3多层架构示意图

01

创建数据表

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


02

创建实体类

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

【文件7-1】Account.java


03

创建DAO接口和实现类

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

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

■ 图7-4数据访问层的设计方案

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

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

【文件7-2】AccountDaoImpl.java


04

创建Service接口和实现类

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

【文件7-3】AccountServiceImpl.java

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

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

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


05

创建Servlet

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

【文件7-4】LoginServlet.java

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


06

创建JSP

创建表示层组件JSP,它是MVC模式中的V(视图)。在src/main/webapp文件夹下创建名为login.jsp的JSP文件,设计用户登录界面,代码可参考文件3-14,此处略。

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


实例讲解

Java Web程序设计实战

精彩回顾


一文读懂Java Web是什么?

设计一个监听器

JDBC案例:实现图书管理


下期预告


开发一个MyBatis

设计一个简单的Spring应用程序

Spring AOP开发

Spring MVC案例:设计一个简单的Web应用

拦截器案例:用户登录权限验证



07

参考书籍


↑↑↑点击上方图片查看图书详情↑↑↑


《Java Web程序设计与项目案例(微课视频版)》

ISBN:9787302625698

作者:郭煦

定价:59.90元

扫码优惠购书


内容简介

本书是一本以案例为基础的图书,非常适合具备一定Java基础的读者学习。 通过本书的学习,读者可以实现从Java Web入门级开发到运用Spring、Spring MVC和MyBatis三大框架进阶开发的跨越。

全书分为两部分,共有16章。

第一部分为Java Web开发基础,包括第1~7章。

第1章是概述,主要介绍Java Web开发的常用技术、概念和术语,以及HTTP概述等。 

第2章是JSP,主要介绍JSP基础语法、运行原理和内置对象等。

第3章是Servlet,主要介绍Servlet基础、Servlet配置、Servlet常用接口、会话跟踪技术等。

第4章是EL和JSTL。

第5章是过滤器和监听器,主要介绍过滤器编程接口、监听器编程接口和应用案例。

第6章是JDBC,主要介绍JDBC常用API、JDBC综合案例和数据库连接池等。第7章是Web开发模型,主要介绍JavaBean技术、JSP开发模型、MVC设计模式和应用案例。

第二部分为Java Web开发框架,包括第8~16章。

第8章是MyBatis,主要介绍MyBatis简介及入门程序、MyBatis配置、MyBatis映射与综合案例、MyBatis关联映射、MyBatis缓存与动态SQL等。

第9章是MyBatis注解开发,主要介绍MyBatis基础注解、动态SQL注解和关联查询注解。

第10章是Spring IoC,主要介绍Spring概述、控制反转、Bean实例化、依赖注入、Bean的作用域、Spring的组件装配。

第11章是Spring AOP,主要介绍Spring AOP简介、Spring AOP开发基础、AspectJ AOP开发等。

第12章是Spring 数据库开发,主要介绍JdbcTemplate、JdbcTemplate的常用方法、Spring事务管理(基于XML方式和基于注解方式的事务管理)、Spring整合非关系数据库(Redis和MongoDB)。

第13章是Spring MVC基础,主要介绍Spring MVC简介、Spring MVC工作流程、Spring MVC功能组件、视图解析器等。

第14章是Spring MVC控制器,主要介绍控制器相关注解、请求映射、请求转发与重定向、数据绑定和JSON数据交互。

第15章是Spring MVC高级特性,主要介绍拦截器、异常处理和文件上传与下载。

第16章是SSM框架整合,结合后端项目案例,介绍基于XML方式整合和注解方式整合框架,并提供了Vue.js客户端和微信小程序客户端代码。

附录A~D以数字资源形式展示,分别介绍在Eclipse中配置Maven、MySQL的安装与设置、Vue.js客户端代码和微信小程序客户端代码。







    文章转载自清华计算机学堂,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论