当前课程知识点:Web后端开发技术 >  第9章 某高校毕业生信息发布系统开发 >  9.3 系统实现 >  9.3.1完善登陆和注册功能

返回《Web后端开发技术》慕课在线视频课程列表

9.3.1完善登陆和注册功能在线视频

下一节:9.3.2完善简历添加功能

返回《Web后端开发技术》慕课在线视频列表

9.3.1完善登陆和注册功能课程教案、知识点、字幕

同学你好

今天我们学习这个知识点

本节首先给大家去演示

我们最后这个项目的登录和注册

我们还是基于我们之前讲过的项目

做更改

首先我chapter9的

project是在

我们上一个chapter8 project基础

之上复制而来的

那么我这里增加了一些内容

首先

我们之前讲过DBUtil

我放在了

com.hbun.until这个包下

因为我现在用的数据库叫做

chapter9

所以说我在连接的时候

把数据库改成chapter 9

我这里面定义了一个异常类

叫做 serviceException

用于在我们的服务层

抛出异常用的

这个类的实现很简单

就是用到我们超类的构造方法就可以了

然后我们对应的这些包

在我们之前设计的有我们的po包

跟我们数据库打交道的这些实体类

还有我们的dao和我们dao层交互的

以及我们的service

我们的服务层

那么首先我们先看我们的

student Dao

在student Dao里面

我实现了这样的一个方法

第1个方法叫做

getByName

也就是说我要根据我的用户名

当然这个用户名是指的登录的用户名

来获取我的一个student对象

我们sql语句就是

select*from student

where指定我的用户名是多少

然后我调用我们的DBUtil

把SQL还有我们的参数传进去

传进去以后就返回我的一个

ResultSet

如果我的ResultSet的

存在下一条记录

我们就依次从数据库里把我们的Id

name等等这些属性值拿出来

设置到我们 student

对象当中

然后把我们student对象返回

那么很显然如果这条记录没有查找出来

也就是说没有用户名的用户

我们最后就返回一个空值

这是这个方法

还有一个方法

我们在注册的时候会用

这里先给出来叫做studentReg

那么我需要传进两个参数

一个叫做name

一个叫做password

那我直接把name和password插入进去

插入到我们数据库里就可以了

那么这是我们的dao层和数据库操作

那么什么叫做业务层

大家看

首先我们先看注册这个方法

那么在我们的dao层注册

我是不管用户名存在不存在的

反正你给我用户名密码

我就往数据库里插

往数据库里插

面向的直接就是数据库

但是在我们的service层

我就不是这样了

首先我干嘛

我要根据我的用户名去查找

student的对象

我们dao层刚才写好这个方法

那么如果这个对象不等于空

也就是说用户已经存在了

对不起

我在我就要抛出一个异常

说我该用户已经存在

在我们的servlet上进行处理

就这个异常就可以了

这是我们自定义的一个

service异常

那么这个异常没有抛出

说明我用户才能正常插进去

那么调用studentReg

造成的方法

那么把我的用户名密码插进去

这是我们的注册这个业务

那么我们的登录业务同样也是

首先我根据我传递用户名查找一下

我用户存不存在

如果这个用户连都是空的话

说明它不存在

那么这个用户肯定就不能再让他

继续登录了

我就要抛出异常

那么如果这个用户存在

我还要验证一下用户的密码和他

传进来的密码是不是一致的

如果不一致

对不起

我就说你是密码错误

如果这两个错误都没发生

我就正常返回一个student对象

表示我登录成功了

那么接下来我们就要改造我们的

userservlet

也就是我们登录的处理逻辑

那么之前我们的处理逻辑这些

数据库的代码都写在我们servlet

当中了

很显然是不合适的

所以说现在我们把这个都删掉

首先在注册的时候

如果它当前调用的是我们的注册方法

那么首先要获取他的用户名

获取他的密码

我也不用再组sql语句了

我把这些全都删掉

那么在我们servlet当中

我们肯定要依赖于我们的

service层

也就我们java bean

我们这个bean叫做 studentService

我把 bean给它new出来

那么我直接就可以

如果是注册的话

我们有一个方法

叫做studentReg

把我们的获取到的

userName和我们的

password传进去

当然了

我们要对它进行try catch

因为它有可能注册不成功会

抛出一个异常

这个异常是我们自定义的

service异常

我们只是捕获

我们的自定义的

service exception

如果异常捕获到了

我们就要给他输

往request请求域里面输出

一个错误信息

错误信息就是我们异常里面

给我们的error信息

getMessage

说白了 也就是假如说我们注册的时候

这个用户已经存在了

我们获取的到的就是我们抛出的用户

已经存在的这样的一个异常

给放到我们请求域当中

然后这个异常如果发生了

那么我就要getRequest

dispatcher

我就要继续返回到我的注册页面

.forward

那么如果这个异常没有发生

也就是这句话

正常注册了

我们就可以怎么办

我们就可以

sendRedirect

我们这里进入到哪

我们可以redirect到我们的

首页

我们的首页之前也已经给大家写了

是我们的index的一个servlet

所以说这里我们可以通过

request.get

ContextPath

然后转向到我们的首页就是

indexServlet

就可以了

那么我们先尝试一下我们的注册页面

能不能成功

我先给他

没用的代码先删去

然后我们需要做一个小小的修改

就是注册页面如果出错了

我是不是要把我错误信息给拿出来

在这显示出来

所以说

我在这里用一个font

Color是red

我们这里给了一个request

scope.我们的error信息

servlet有一些错误是因为

我们login这块的错误

我们先把login这些代码都给他删去

因为我们待会儿这些代码也都用不到了

所有跟数据库这些代码都删去

待会我们再来改造login这个方法

我重启一下我的服务

刷新一下

注册jjq

123

123

点击注册

就回到我们的首页了

我们看一下数据库

因为我们首页还没有从数据库里

读数据

所以说看不出效果来

我们看我们的student已经有

一个jjq123了

那么假如说我现在继续注册

还是jjq随便输个密码

我输的是123

它应该会出现我们的错误的信息

该用户已经存在

然后让我们继续换其他的

这是我们的注册

那么登录这块同理

我们也需要改造登录

我们还是要try catch

因为登录的时候也会发生

用户名和密码的

这个验证过程

在我们的service方法里

我直接调用我们的login

把我们的用户名和密码传进去

如果发生错误了

同样我们也是把错误信息放进去

只不过转向到的是我们的

login.JSP页面

如果没有发生错误

那好我就转向直接转向到我们的首页去

这样的话我们的登录就改造完了

同理

我们的登录为了让它显示我们也加

一个font标签

当然这里我没有进行很好的排版

大家可以去写html代码去

把font标签放的位置更合适一点

把错误信息显示出来

那么我们访问我们的

login.JSP页面

我们刚才注册了一个jjq

123

点击登录

大家可以看到我们已经正常登录到

首页了

但是如果说的是jjq1

123

它会显示用户不存在

如果说的是jjq

随便输个密码

它会显示我的是密码错误

那么这里还要注意一个问题

为了我们后续的使用方面

当我们正常登录成功以后

我们一定要把用户的信息

放在我们的session当中

所以说如果在我们调整之前

如果他正常登录了

我们通过 request.

getSession.setAttribute

我的key就是我的username

或者说叫name

叫name也行

然后我这个值放什么

实际上我想放的

是我student对象

大家可以看我login

我这个login

现在返回的就是一个student对象

它里面装载的我student

里面的所有的属性

所以说我这里就login完以后

我用一个student对象来接收一下

那么我把student对象给放进去

这样放的好处是你从session当中

取出的是student对象

你想获取对象的用户名也好

密码也好

或者用户其他的一些专业等等信息

你直接就可以拿到了

所以说这里有给它设置到session里

那么到现在为止

我们的注册和登录功能就已经非常的

完善了

这个知识点就讲到这里

谢谢

Web后端开发技术课程列表:

第1章 Java Web开发准备

-1.0 导学

--1.0.1 导学

-1.1 Web应用开发概述

--1.1.1 Web应用简介

--1.1.2 Web开发技术

--1.1.3 测试

-1.2 准备Java Web应用开发环境

--1.2.1 准备Java Web应用开发环境

--1.2.2 测试

--1.2.3 谈谈JavaWeb优势和学习方法

-1.3 任务实现:Hello World Web项目

--1.3.1 Hello World Web项目

--1.3.2 测试

-1.4 小结

--1.4.1 小结

-本课程所有代码

--课程参考代码

第2章 Servlet技术基础

-2.0 导学

--2.0.1 导学

-2.1 Servlet概述

--2.1.1 Servlet简介

--2.1.2 Servlet API

--2.1.3 测试

-2.2 创建Servlet

--2.2.1 Hello Servlet

--2.2.2 Servlet配置

--2,2,3 作业

-2.3 Servlet应用

--2.3.1 处理超链接请求

--2.3.2 处理form表单请求

--2.3.3 处理结果

--2.3.4 测试

-2.4 任务实现:某高校毕业生信息发布系统-注册与登录(Servlet版)

--2.4.1 注册代码实现

--2.4.2 登录代码实现

--2.4.3 测试

--2.4.4谈一谈jQuery前端开发框架

-2.5 ServletConfig接口

--2.5.1 ServletConfig接口

-2.6 ServletContext接口

--2.6.1 ServletContext接口

-2.7 HttpServletRequest接口

--2.7.1 获取请求报文信息

--2.7.2 上传照片

--2.7.3 获取网络连接信息

--2.7.4 存取请求域属性

--2.7.5 测验

--2.7.6 在请求转发和重定向过程中传递数据

-2.8 HttpServletResponse接口

--2.8.1 HttpServletResponse接口

--2.8.2 输出服务器端图片

--2.8.3 测试

-2.9 任务实现:某高校毕业生信息发布系统-简历添加

--2.9.1 任务实现:某高校毕业生信息发布系统-简历添加

-2.10 小结

--2.10.1 小结

-动画演示:Java Web应用服务器处理客户端请求的过程

--Java Web应用服务器处理客户端请求的过程

第3章 会话跟踪

-3.0 导学

--3.0.1 导学

-3.1 Cookie技术

--3.1.1 Cookie技术概述

--3.1.2 Cookie技术应用-自动登录

--3.1.3 测试

-3.2 Session技术

--3.2.1 Session技术概述

--3.2.2 Session技术-Session技术应用购物车

--3.2.3 测试

-3.3 URL重写与隐藏表单域

--3.3.1 URL重写技术与隐藏表单域

--3.3.2 测试

-3.4 任务实现:某高校毕业生信息发布系统-简历修改

--3.4.1 任务实现:某高校毕业生信息发布系统-简历修改

--3.4.2 讨论会话跟踪技术的应用场景

-3.5 小结

--3.5.1 小结

第4章 JSP基础

-4.0 导学

--4.0.1 JSP导学

-4.1 jsp概述

--4.1.1 JSP概述

--4.1.2 测试

-4.2 脚本元素

--4.2.1 脚本元素

--4.2.2 测试

-4.3 指令元素

--4.3.1 指令元素

--4.3.2 测试

-4.4 动作元素

--4.4.1 动作元素

--4.4.3 测试

-4.5 内置对象

--4.5.1 内置对象(1)

--4.5.2 内置对象(2)

--4.5.3 测试

-4.6 JavaBean

--4.6.1 JavaBean概述

--4.6.2 分步注册

--4.6.3 测试

-4.7 任务实现:某高校毕业生信息发布系统-首页(JSP版)

--4.7.1 任务实现:某高校毕业生信息发布系统-首页(JSP版)

--4.7.2 在JSP页面显示内容的都有哪些方法

-4.8 小结

--4.8.1 小结

第5章 表达式语言

-5.0 导学

--5.0.1 表达式语言

--5.0.2 测试

-5.1 el语法

--5.1.1 EL语法

--5.1.2 测试

-5.2 el隐含对象

--5.2.1 EL隐含对象

--5.2.2 测试

-5.3 任务实现:某高校毕业生信息发布系统-学生详细信息展示

--5.3.1 任务实现:某高校毕业生信息发布系统-学生详细信息展示

--5.3.2 测试

-5.4 小结

--5.4.1 小结

--5.4.2 讨论el表达式的优势

第6章 标准标签库

-6.0 导学

--6.0.1 标准标签库

--6.0.2 测试

-6.1 核心标签库

--6.1.1 通用标签

--6.1.2 条件标签

--6.1.3 迭代标签

--6.1.4 URL标签

--6.1.5 测试

-6.2 任务实现:某高校毕业生信息发布系统-首页(JSTL版)

--6.2.1 任务实现:某高校毕业生信息发布系统-首页(JSTL版)

--6.2.2 测试

-6.3 小结

--6.3.1 小结

--6.3.2 讨论如何实现自定义标签

第7章 Filter和Listener

-7.0 导学

--7.0_导学

-7.1 过滤器

--7.1.1过滤器(1)

--7.1.2过滤器(2)

--7.1.3 测试

-7.2 监听器

--7.2.1.1与ServletContext相关的监听器

--7.2.1.2示例:访问网站计数功能

--7.2.2.1与Session相关的监听器

--7.2.2.2示例:显示在线用户名称

--7.2.3.1与Request相关的监听器

--7.2.3.2示例:实时显示访问网站用户信息示例

--7.2.4 测试

-7.3 任务实现:某高校毕业生信息发布系统-单态登录

--7.3.1 任务实现:某高校毕业生信息发布系统-单态登录

--7.3.2 测试

-7.4 小结

--7.4.1小结

--7.4.2讨论filter和listener使用场景

第8章 JDBC

-8.0 导学

--8.0_导学

-8.1 JDBC API

--8.1.1 JDBC API

--8.1.2 测试

-8.2 JDBC API访问MySQL基本步骤

--8.2.1 JDBC API

--8.2.2 测试

-8.3 任务实现:某高校毕业生信息发布系统-注册与登录

--8.3.1 任务实现:某高校毕业生信息发布系统-注册与登录(JDBC版)

--8.3.2 测试

-8.4 小结

--8.4.1小结

--8.4.2 讨论JDBC工具类

第9章 某高校毕业生信息发布系统开发

-9.0导学

--9.0导学

-9.1 技术准备

--9.1.1技术准备-MVC模式

--9.1.2技术准备-Ajax技术

--9.1.3技术准备-jQuery对Ajax的实现

--9.1.4_技术准备- JDBC工具类

--9.1.5 测试.

-9.2 系统设计

--9.2系统设计:某高校毕业生信息发布系统开发

-9.3 系统实现

--9.3.1完善登陆和注册功能

--9.3.2完善简历添加功能

--9.3.3完善简历修改功能

--9.3.4.1首页分页显示

--9.3.4.2首页分页显示

-9.4 小结

--9.4.1小结

--9.4.2讨论:分页组件

9.3.1完善登陆和注册功能笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。