黑马程序员技术交流社区
标题:
【厦门校区JavaEE就业6期-每日总结】综合案例_day01
[打印本页]
作者:
厦门校区
时间:
2019-5-17 20:37
标题:
【厦门校区JavaEE就业6期-每日总结】综合案例_day01
分别将用户注册,用户登录的业务逻辑用自己的话描述出来
作者:
管文祥
时间:
2019-5-17 21:12
分别将用户注册,用户登录的业务逻辑用自己的话描述出来
1.用户注册:
在入口函数内给表单绑定提交事件,如果输入框的所有校验都通过的话,使用post方法将表单提交,在registerUserServlet中,获取前端页面提交的数据,调用service层中的regist方法进行注册,在regist方法中再次调用dao层中的findUserByUsername对数据库中的数据进行查找并返回一个user对象,如果user存在,则说明注册失败,返回false,如果不存在,则再次调用dao层的save方法,对表单传入的数据添加进数据库中,并返回true,通过service层接收到dao层返回的结果,向前端进行数据响应,给出相应的信息。
2.用户登录
在入口函数内给登录按钮添加click事件,事件中使用post方法向loginServlet提交请求,loginServlet中对前端的数据进行获取与封装,调用service层中的login方法进行登录,在login方法中,首先调用dao层中的findUserByUsernameAndPassword方法(通过用户名以及密码在数据库中查找),返回一个user对象,对返回的user对象进行判断,如果user不为空,说明用户存在。表示登录成功,如果user为空,则说明用户登录失败,向前端页面提示相应的信息。
作者:
徐代成
时间:
2019-5-17 21:22
分别将用户注册,用户登录的业务逻辑用自己的话描述出来
用户注册:①在前端页面验证表单数据格式 ②表单验证完成后提交异步请求③在servlet页面先判断验证码是否正确,再接收前端请求数据,将数据封装,④调用service层方法,将servlet层封装的参数传递给service层⑤service层调用dao层方法,dao层返回结果给service层,⑥service层根据dao层返回的结果进行判断,如果为空,则用户名不存在,service层再调用dao层保存封装的对象,返回true,如果不为空,返回false。⑦servlet层根据service层返回的结果,如果是false,则用户名存在,注册失败,如果为true,注册成功。将结果封装为json对象,设置响应头⑧前端根据servlet层返回的结果进行解析,将结果处理后显示到页面
用户登录:①为登陆按钮添加单击事件②提交异步请求数据③在servlet页面先判断验证码是否正确,再接收前端请求数据,将数据封装,④调用service层方法,将servlet层封装的参数传递给service层 ⑤service层调用dao层方法,dao层查询数据库,将结果返回给service层 ⑥service层将结果返回给servlet层,⑦servlet层对结果进行判断,如果结果为null,则用户名或密码错误,登录失败,如果结果不为null,则登陆成功,将结果封装为json对象,传递到前端 ⑧前端解析结果,并处理展示页面
作者:
李伟艺
时间:
2019-5-17 21:25
分别将用户注册,用户激活,的业务逻辑用自己的话描述出来
1.用户注册
这次我们主要是在html上进行数据的提交,因此使用ajax方式,在servlet层接收数据并封装到user对象中,然后调用service和dao中的方法,根据提交的user对象的username去查询是否存在相同的用户名,不存在的时候就进行数据的存储并返回true,当存在的时候反馈信息给serlvet并存储信息到信息对象中并返回false,根据不同的返回Boolean值进行不一样的操作,true:转发页面到恭喜注册成功,false:在页面显示注册失败。
2.用户激活
判断用户的激活主要通过数据库中的激活状态Status来判断,而激活用户的时候我们用来判断是哪个用户名激活账号是通过激活邮件携带的uuid来锁定用户名的,所以在把将用户信息保存到数据库的时候需要创建唯一的uuid,并把用户的status状态都修改为N,然后在发送邮件给用户的邮箱,当用户进行点击邮件上的超链接的时候会跳转到servlet中,调用service和dao层中的方法修改数据库中对应用户的status值为Y,最后返回登入界面(这里可以延申思考的是在登入界面的时候需要对激活状态进行判断)
作者:
林志鹏
时间:
2019-5-17 21:31
分别将用户注册,用户登录的业务逻辑用自己的话描述出来
用户注册业务逻辑:
基本业务逻辑分析:
校验验证码是否正确:获取前端提交数据中的验证码跟生成的验证码比较错误则响应ResultInfo回客户端,正确则继续执行下面逻辑代码
①点击前端页面的注册组件把表单的数据提交到regisUserServlet中(在进行提交之前可以进行验证码校验,验证码错误的话下面的代码就没有执行的必要)
②由servlet控制器来进行前端数据的获取封装成user对象根据三层架构思想调用service方法查询用户是否存在,存在则提示失败,不存在调用添加用户方法保存到数据库中
③根据service传递回来的值判断是否注册成功再转换成json对象响应回客户端
④客户在前台进行数据注册的时候可以校验注册数据格式是否正确:书写注册中各类组件的校验方法,让表单提交和组件一失焦的时候就调用校验方法,当数据校验失败的时候表单不进行提交,注册成功则跳转到成功页面。
用户登录注册逻辑
基本业务逻辑分析:
①点击前端页面的登录组件时把数据提交到loginServlet中判断用户名密码是否正确,正确则跳转到首页失败则显示失败原因
②servlet把获取的前端数据封装成user对象,调用service方法检测数据库中的数据和提交的用户名密码是否正确,把返回的数据响应回客户端
③登录成功之后在页面头部中显示用户名称增强与用户的交互
作者:
omasoo
时间:
2019-5-17 21:41
标题:
RE: 【厦门校区JavaEE就业6期-每日总结】综合案例_day01
李伟斌
分别将用户注册,用户登录的业务逻辑用自己的话描述出来
综合案例.png
(91.16 KB, 下载次数: 35)
下载附件
2019-5-17 21:41 上传
作者:
陈伟彬
时间:
2019-5-17 21:46
分别将用户注册,用户登录的业务逻辑用自己的话描述出来
答:
用户注册:
客户端:
给每个输入框绑定失焦事件,对每个是输入框的内容进行校验(正则表达式)成功返回true,反正false并给出提示;
进行表单提交时,绑定表单提交事件,调用所有输入框的校验方法只有当所有校验方法都为true时,才能进行提交;将数据提交给服务器,根据服务器返回的结果,注册成功时,跳转至register_ok.html页面;注册失败时,给出错误原因;
服务器:
servlet层:获取前端提交的数据,先验证验证码是否正确,如果错误,将错误数据响应给客户端,并结束程序;如果正确则调用service层的方法验证用户是否存在。如果用户存在则注册失败,将错误数据响应给客户端;如果用户不存在,则注册成功,返回成功数据给客户端
service层:根据用户名,调用dao层的方法,查询用户在数据库是否存在,存在则返回注册失败的数据给调用者;如果不存在,则继续调用dao层的方法将注册用户的数据保存到数据库,并返回注册成功的数据给调用者
dao层:
查询:定义查询的sql语句(根据用户),并将查询结果封装成user对象返回给调用者;
保存:定义保存的SQL语句,将新注册用户的数据保存的数据库中,无返回值;
用户登录:
客户端:
给登录按钮绑定单击事件,将登录数据提交给服务器,根据服务器的响应结果,如果登录成功则跳转到index.html页面;失败则不跳转,并给出错误信息;
服务器:
servlet层:获取前端提交的数据,先验证验证码是否正确,如果错误,将错误数据响应给客户端,并结束程序;如果正确则调用service层的方法验证登录账户密码是否存在。如果存在则登录失败,将错误数据响应给客户端;如果不存在,则登录成功,返回成功数据给客户端
service层:调用到层的方法,传递登录的账户密码,查询是否存在,并返回查询结果;
dao层:根据传递过来的账号密码,定义sql语句,去数据库查询,并将查询结果返回给调用者;
作者:
黑马林伟明
时间:
2019-5-17 21:55
分别将用户注册,用户激活,的业务逻辑用自己的话描述出来
1.用户注册
这次我们主要是在html上进行数据的提交,因此使用ajax方式,在servlet层接收数据并封装到user对象中,然后调用service和dao中的方法,根据提交的user对象的username去查询是否存在相同的用户名,不存在的时候就进行数据的存储并返回true,当存在的时候反馈信息给serlvet并存储信息到信息对象中并返回false,根据不同的返回Boolean值进行不一样的操作,true:转发页面到恭喜注册成功,false:在页面显示注册失败。
2.用户激活
判断用户的激活主要通过数据库中的激活状态Status来判断,而激活用户的时候我们用来判断是哪个用户名激活账号是通过激活邮件携带的uuid来锁定用户名的,所以在把将用户信息保存到数据库的时候需要创建唯一的uuid,并把用户的status状态都修改为N,然后在发送邮件给用户的邮箱,当用户进行点击邮件上的超链接的时候会跳转到servlet中,调用service和dao层中的方法修改数据库中对应用户的status值为Y,最后返回登入界面(这里可以延申思考的是在登入界面的时候需要对激活状态进行判断)
作者:
叶振鹏
时间:
2019-5-17 21:57
分别将用户注册,用户登录的业务逻辑用自己的话描述出来?
答
用户注册:
在注册页面使用js完成表单的校验,校验成功后点击注册按钮,使用ajax完成表单的提交。
跳转到registUserServlet,在此,先获取用户数据并封装成User对象,之后调用service的方法进行注册。根据service层的返回信息向前端页面设置响应信息。
在service层定义registUser(User user)方法,方法内调用dao层的根据用户名查找用户的方法,若用户存在则直接返回false,否则设置用户的code和status属性,然后调用dao保存用户信息。
登录功能:
用户点击登录按钮,提交数据到后台。
UserServlet接收数据。先进行验证码的校验,校验通过后再获取用户名和密码,调用service层的findByUsernameAndPassword(username,password)方法查询用户是否存在。若用户不存在则设置ResultInfo的flag为false,并提示“用户名或密码错误”。否则判断用户是否激活,若未激活则设置flag为false,并提示尚未激活。否则用户登录成功,设置flag为true,将user对象存入session。最后响应登录成功的信息。
作者:
林奕全
时间:
2019-5-17 21:58
分别将用户注册,用户登录的业务逻辑用自己的话描述出来
注册模块步骤:
1.web层 RegistServlet做了哪三件事?
1/获取前端所有参数,封装用户数据
2/调用UserService层方法,完成用户注册
3/跳转到regist.html页面进行展示.
2.service层做了哪些事:
1/创建UserService接口实现web层中的方法;UserServletImpl实现类复写接口方法
2/ 实现类调用dao层的各个方法,返回给web控制层.
3.dao层做了哪些事:
1/创建UserDao接口,实现service层中的方法,UserDaoImpl实现类复写接口方法
2/实现类里面编写sql语句的业务逻辑代码,查询数据库是否有该用户存在.返回给service层
4.Dao层返回给service层,service层又返回给Servlet层,Servlet层将数据转换为json对象,然后响应数据到浏览器客户端进行展示
用户登录模块步骤:
跟注册模块步骤差不多,唯一区别的是注册模块只在数据库中查询用户名即可,而登录的话,需要从数据库中获取用户名和密码,和前端传递过来的参数进行比对,如果正确,即登录成功!
步骤中需要注意的地方:
1/需要先判断前端传递过来的验证码参数和存在session中的验证码是否一致,如果不一致则提示错误信息,直接return掉,不执行下面代码;
2/如果一致则进一步验证用户名和密码,判断密码是否为null,如果不为null则用户名和密码正确,否则提示错误;
3/创建了一个规定统一风格的json格式的java类,里面定义了回写给客户端的json串信息;
4/设置json对象的编码格式,将java对象转换为json对象,有两种格式,只能二者选其一.
作者:
廖艺铭
时间:
2019-5-17 22:50
分别将用户注册,用户登录的业务逻辑用自己的话描述出来
用户注册:前端页面表单验证 -> 服务端servlet获取表单数据后校验用户名若合法则成功注册 -> 写数据库
用户登陆:后台servlet获取表单数据 -> 若用户名和密码正确且已激活则成功登陆 -> 跳转首页
作者:
曾伟清
时间:
2019-5-17 23:31
分别将用户注册,用户登录的业务逻辑用自己的话描述出来
用户注册:
答:(1)首先,做一个功能,当鼠标从输入框离焦就校验一次输入框内容,然后表单提交就校验全部输入框的内容。
步骤:1.给每个输入框创建一个校验function,定义一个正则表达式,调用test方法,传入输入框的value值作为参数,将返回的布尔值直接作为方法的返回值,
然后如果跟正则不匹配设置输入框边框为红色,否则设置为颜色不变。
2.通过选择器获得表单对象,绑定一个submit事件,function里面调用所有的校验function,只有所有的返回值都为ture才提交表单,否则不提交。
3.通过id选择器获得每个输入框对象,绑定离焦事件,传入相应的校验function。
4.提交表单用异步提交。
(2)三层架构阶段
1.servlet层获得异步提交的所有参数,将这些参数用Beanutils封装为User对象,调用service层的对应的方法,传入user作为参数;
2.service层再调用dao层的方法,将user里面的username获取出来作为参数,dao层查询数据库将查询的结果封装为user对象返回service层;
3.service层判断dao层返回的user是否为空,不为空说明数据库有这个username,则注册失败,返回一个false;为空说明数据库没有这个username,则可以注册,继续调用dao层存数据方法,
将用户数据存入数据库,并返回一个true;
4.servlet层获得service层返回的布尔值,创建一个resultinfo对象info用来存储注册状态信息,根据返回的布尔,如果是false则设置resultinfo的flag属性为false,erromsg为注册失败;如果是true,
则设置flag属性为true;将info对象序列化为json,设置contentType响应头,响应回前端。
(3)前端的异步请求返回的data是个json对象,先在form表单的前面设置一个div标签来显示错误信息。根据json的flag属性判断,为true直接跳转注册成功页面,为false则在div标签显示errormsg信息。
用户登录:
答:(1)前端:跟button绑定一个单击事件,单击提交表单,提交方式用异步请求,异步请求的参数为所有输入框的内容。
(2)三层架构
1.sevlet层先获得验证码这个参数,再获取验证码servlet里面session设置的验证码。与前一步获得的参数比对返回布尔值;创建resultinfo对象info,如果布尔值为false,则info
的flag属性设为false,errormsg设为验证码错误,将info序列化为json响应给前端,写一个return结束方法。如果为true,则继续查找有没有这个username和password;
2.sevlet获得所有参数,封装为user对象,user对象作为参数调用service层相应的方法;service层将user的username,password取出来作为参数调用dao层的方法;dao层用这两个参数作为条件查找
数据库,将结果封装为user对象返回service层,service层直接将user对象返回servlet层;
3.servlet层用service层返回的user对象作判断,如果为空则说明登录失败,设置info对象的flag为false,errormsg为账号或密码错误;如果不为空,则登录成功,设置flag为true,并获得一个
session,将返回的user设置进去。将info
序列化响应给前端。
(3)前端的异步请求返回的data是个json对象,用form表单前面有个id为errorMsg的div标签来显示错误信息。根据json的flag属性判断,为true直接跳转index.html页面,为false则在div标签显示json里存储的
errormsg信息。
(4)index.html页面是包含header.html页面的,设置“欢迎回来,user”,需要在header.html页面里面设置。header.html里面代码:写一个异步请求,参数为空,请求的servlet作用只是将session域中user对象序列化
并响应给header.html。异步请求接收的data是user序列化的jshon对象。要显示“欢迎回来,user”,找到设置这句话的span标签,将data.name拼接进字符串,设置到span标签即可。
(5)退出功能:在退出这个超链接标签设置href="javascript:location.href='退出的servlet资源路径';servlet里面代码:清除session对象,并重定向或者转发到登录页面。
作者:
陈前凌
时间:
2019-5-18 21:01
用户注册业务逻辑:
1.注册页面:
1.入口函数外定义各个注册输入框的验证方法,用正则表达式验证,方法返回bolean
2.在入口函数中绑定各个输入框的焦点事件,并连接验证方法
3.在入口函数内定义表单提交的方法,方法内,判断各个验证方法是否正确。
1)正确的话,使用ajax的异步提交,根据响应值判断,进行什么逻辑
2)错误的话,不提交表单
2.servlet层:
1.获取验证码,进行验证码校验,失败的话返回响应值,成功的话继续执行下面
2.获取输入框的请求参数,封装数据为user
3.调用service的regist(user)方法,获取返回值
4.根据返回值进行判断操作
1)返回值为null,响应数据
2)返回值不为null,响应数据
3.service层
1.定义一个方法,方法内调用dao的findUsername(user的名字属性值),获取返回值daouser进行判断操作
1)daouser不为null,返回至上一层
2)daouser为null的话,调用dao的save(user)方法,存入数据,返回上一层
4.dao层
1.dao调用findUsername(String username)查询数据并返回
2.dao调用save(User user)添加数据
2.用户登录:
前端页面:
1.定义入口函数,给登入按钮绑定单击事件。
2.事件方法实行ajax异步请求方法连接servlet
3.获取响应体数据并作判断,登入成功或者失败
servlet层:
1.获取验证码,进行验证码校验,失败的话返回响应值,成功的话继续执行下面
2.获取输入框的请求参数,封装数据为user
3.调用service的login(user)方法,获取返回值
4.根据返回值进行判断操作
1)返回值为null,响应数据
2)返回值不为null,响应数据 ,并将user存到session域中
作者:
黄杰南
时间:
2019-5-18 21:16
1.用户注册:
在入口函数内给表单绑定提交事件,如果输入框的所有校验都通过的话,使用post方法将表单提交,在registerUserServlet中,获取前端页面提交的数据,调用service层中的regist方法进行注册,在regist方法中再次调用dao层中的findUserByUsername对数据库中的数据进行查找并返回一个user对象,如果user存在,则说明注册失败,返回false,如果不存在,则再次调用dao层的save方法,对表单传入的数据添加进数据库中,并返回true,通过service层接收到dao层返回的结果,向前端进行数据响应,给出相应的信息。
2.用户登录
在入口函数内给登录按钮添加click事件,事件中使用post方法向loginServlet提交请求,loginServlet中对前端的数据进行获取与封装,调用service层中的login方法进行登录,在login方法中,首先调用dao层中的findUserByUsernameAndPassword方法(通过用户名以及密码在数据库中查找),返回一个user对象,对返回的user对象进行判断,如果user不为空,说明用户存在。表示登录成功,如果user为空,则说明用户登录失败,向前端页面提示相应的信息。
作者:
刘曾铭
时间:
2019-5-18 21:16
分别将用户注册,用户登录的业务逻辑用自己的话描述出来
1.用户注册:
在入口函数内给表单绑定提交事件,如果输入框的所有校验都通过的话,使用post方法将表单提交,在registerUserServlet中,获取前端页面提交的数据,调用service层中的regist方法进行注册,在regist方法中再次调用dao层中的findUserByUsername对数据库中的数据进行查找并返回一个user对象,如果user存在,则说明注册失败,返回false,如果不存在,则再次调用dao层的save方法,对表单传入的数据添加进数据库中,并返回true,通过service层接收到dao层返回的结果,向前端进行数据响应,给出相应的信息。
2.用户登录
在入口函数内给登录按钮添加click事件,事件中使用post方法向loginServlet提交请求,loginServlet中对前端的数据进行获取与封装,调用service层中的login方法进行登录,在login方法中,首先调用dao层中的findUserByUsernameAndPassword方法(通过用户名以及密码在数据库中查找),返回一个user对象,对返回的user对象进行判断,如果user不为空,说明用户存在。表示登录成功,如果user为空,则说明用户登录失败,向前端页面提示相应的信息。
作者:
陈志铖
时间:
2019-5-18 21:17
分别将用户注册,用户登录的业务逻辑用自己的话描述出来
1.用户注册:
在入口函数内给表单绑定提交事件,如果输入框的所有校验都通过的话,使用post方法将表单提交,在registerUserServlet中,获取前端页面提交的数据,调用service层中的regist方法进行注册,在regist方法中再次调用dao层中的findUserByUsername对数据库中的数据进行查找并返回一个user对象,如果user存在,则说明注册失败,返回false,如果不存在,则再次调用dao层的save方法,对表单传入的数据添加进数据库中,并返回true,通过service层接收到dao层返回的结果,向前端进行数据响应,给出相应的信息。
2.用户登录
在入口函数内给登录按钮添加click事件,事件中使用post方法向loginServlet提交请求,loginServlet中对前端的数据进行获取与封装,调用service层中的login方法进行登录,在login方法中,首先调用dao层中的findUserByUsernameAndPassword方法(通过用户名以及密码在数据库中查找),返回一个user对象,对返回的user对象进行判断,如果user不为空,说明用户存在。表示登录成功,如果user为空,则说明用户登录失败,向前端页面提示相应的信息。
作者:
6期江岳
时间:
2019-5-18 21:18
分别将用户注册,用户登录的业务逻辑用自己的话描述出来?
答
用户注册:
在注册页面使用js完成表单的校验,校验成功后点击注册按钮,使用ajax完成表单的提交。
跳转到registUserServlet,在此,先获取用户数据并封装成User对象,之后调用service的方法进行注册。根据service层的返回信息向前端页面设置响应信息。
在service层定义registUser(User user)方法,方法内调用dao层的根据用户名查找用户的方法,若用户存在则直接返回false,否则设置用户的code和status属性,然后调用dao保存用户信息。
登录功能:
用户点击登录按钮,提交数据到后台。
UserServlet接收数据。先进行验证码的校验,校验通过后再获取用户名和密码,调用service层的findByUsernameAndPassword(username,password)方法查询用户是否存在。若用户不存在则设置ResultInfo的flag为false,并提示“用户名或密码错误”。否则判断用户是否激活,若未激活则设置flag为false,并提示尚未激活。否则用户登录成功,设置flag为true,将user对象存入session。最后响应登录成功的信息。
作者:
陈弘帅
时间:
2019-5-18 21:25
分别将用户注册,用户登录的业务逻辑用自己的话描述出来
用户注册:
答:(1)首先,做一个功能,当鼠标从输入框离焦就校验一次输入框内容,然后表单提交就校验全部输入框的内容。
步骤:1.给每个输入框创建一个校验function,定义一个正则表达式,调用test方法,传入输入框的value值作为参数,将返回的布尔值直接作为方法的返回值,
然后如果跟正则不匹配设置输入框边框为红色,否则设置为颜色不变。
2.通过选择器获得表单对象,绑定一个submit事件,function里面调用所有的校验function,只有所有的返回值都为ture才提交表单,否则不提交。
3.通过id选择器获得每个输入框对象,绑定离焦事件,传入相应的校验function。
4.提交表单用异步提交。
(2)三层架构阶段
1.servlet层获得异步提交的所有参数,将这些参数用Beanutils封装为User对象,调用service层的对应的方法,传入user作为参数;
2.service层再调用dao层的方法,将user里面的username获取出来作为参数,dao层查询数据库将查询的结果封装为user对象返回service层;
3.service层判断dao层返回的user是否为空,不为空说明数据库有这个username,则注册失败,返回一个false;为空说明数据库没有这个username,则可以注册,继续调用dao层存数据方法,
将用户数据存入数据库,并返回一个true;
4.servlet层获得service层返回的布尔值,创建一个resultinfo对象info用来存储注册状态信息,根据返回的布尔,如果是false则设置resultinfo的flag属性为false,erromsg为注册失败;如果是true,
则设置flag属性为true;将info对象序列化为json,设置contentType响应头,响应回前端。
(3)前端的异步请求返回的data是个json对象,先在form表单的前面设置一个div标签来显示错误信息。根据json的flag属性判断,为true直接跳转注册成功页面,为false则在div标签显示errormsg信息。
用户登录:
答:(1)前端:跟button绑定一个单击事件,单击提交表单,提交方式用异步请求,异步请求的参数为所有输入框的内容。
(2)三层架构
1.sevlet层先获得验证码这个参数,再获取验证码servlet里面session设置的验证码。与前一步获得的参数比对返回布尔值;创建resultinfo对象info,如果布尔值为false,则info
的flag属性设为false,errormsg设为验证码错误,将info序列化为json响应给前端,写一个return结束方法。如果为true,则继续查找有没有这个username和password;
2.sevlet获得所有参数,封装为user对象,user对象作为参数调用service层相应的方法;service层将user的username,password取出来作为参数调用dao层的方法;dao层用这两个参数作为条件查找
数据库,将结果封装为user对象返回service层,service层直接将user对象返回servlet层;
3.servlet层用service层返回的user对象作判断,如果为空则说明登录失败,设置info对象的flag为false,errormsg为账号或密码错误;如果不为空,则登录成功,设置flag为true,并获得一个
session,将返回的user设置进去。将info
序列化响应给前端。
(3)前端的异步请求返回的data是个json对象,用form表单前面有个id为errorMsg的div标签来显示错误信息。根据json的flag属性判断,为true直接跳转index.html页面,为false则在div标签显示json里存储的
errormsg信息。
(4)index.html页面是包含header.html页面的,设置“欢迎回来,user”,需要在header.html页面里面设置。header.html里面代码:写一个异步请求,参数为空,请求的servlet作用只是将session域中user对象序列化
并响应给header.html。异步请求接收的data是user序列化的jshon对象。要显示“欢迎回来,user”,找到设置这句话的span标签,将data.name拼接进字符串,设置到span标签即可。
(5)退出功能:在退出这个超链接标签设置href="javascript:location.href='退出的servlet资源路径';servlet里面代码:清除session对象,并重定向或者转发到登录页面。
作者:
卢勇炜
时间:
2019-5-18 21:57
分别将用户注册,用户激活,的业务逻辑用自己的话描述出来
1.用户注册
这次主要是在html上进行数据的提交,因此使用ajax方式,在servlet层接收数据并封装到user对象中,然后调用service和dao中的方法,根据提交的user对象的username去查询是否存在相同的用户名,不存在的时候就进行数据的存储并返回true,当存在的时候反馈信息给serlvet并存储信息到信息对象中并返回false,根据不同的返回Boolean值进行不一样的操作,true:转发页面到恭喜注册成功,false:在页面显示注册失败。
2.用户激活
判断用户的激活主要通过数据库中的激活状态Status来判断,而激活用户的时候我们用来判断是哪个用户名激活账号是通过激活邮件携带的uuid来锁定用户名的,所以在把将用户信息保存到数据库的时候需要创建唯一的uuid,并把用户的status状态都修改为N,然后在发送邮件给用户的邮箱,当用户进行点击邮件上的超链接的时候会跳转到servlet中,调用service和dao层中的方法修改数据库中对应用户的status值为Y,最后返回登入界面(这里可以延申思考的是在登入界面的时候需要对激活状态进行判断)
作者:
吴越
时间:
2019-5-19 09:19
用户注册:通过点击首页的注册按钮,跳转到register.html注册页面,注册页面的表单收集用户输入的数据,并进行表单校验,符合条件后将数据异步发送至UserServlet,通过BaseServlet中的service方法反射调用UserServlet下的regist方法,将用户输入的数据封装为user对象,再通过调用UserServiceImpl中的regist方法,将参数传递到Dao层,使用userDao中的save方法将注册数据写入数据库,完成注册。
用户登录:通过点击首页的登录按钮,跳转到login.html登录页面,登录页面的表单收集用户输入的账户名和密码,将数据异步发送至UserServlet,通过BaseServlet中的service方法反射调用UserServlet下的login方法,将用户输入的数据封装为user对象,再通过调用UserServiceImpl中的login方法,将参数传递到Dao层,使用userDao中的findByUsernameAndPassword方法,查询数据库中是否有匹配的信息,并将结果封装为user对象返回。若该对象不为null,代表登录成功;对象为null,代表登录失败,UserServlet会将结果封装为ResultInfo对象,返回到前端页面。
作者:
zhaizhile
时间:
2019-5-19 15:18
分别将用户注册,用户登录的业务逻辑用自己的话描述出来
1.用户注册:
在入口函数内给表单绑定提交事件,如果输入框的所有校验都通过的话,使用post方法将表单提交,在registerUserServlet中,获取前端页面提交的数据,调用service层中的regist方法进行注册,在regist方法中再次调用dao层中的findUserByUsername对数据库中的数据进行查找并返回一个user对象,如果user存在,则说明注册失败,返回false,如果不存在,则再次调用dao层的save方法,对表单传入的数据添加进数据库中,并返回true,通过service层接收到dao层返回的结果,向前端进行数据响应,给出相应的信息。
2.用户登录
在入口函数内给登录按钮添加click事件,事件中使用post方法向loginServlet提交请求,loginServlet中对前端的数据进行获取与封装,调用service层中的login方法进行登录,在login方法中,首先调用dao层中的findUserByUsernameAndPassword方法(通过用户名以及密码在数据库中查找),返回一个user对象,对返回的user对象进行判断,如果user不为空,说明用户存在。表示登录成功,如果user为空,则说明用户登录失败,向前端页面提示相应的信息。
作者:
王旭艺
时间:
2019-5-19 16:40
分别将用户注册,用户登录的业务逻辑用自己的话描述出来
用户注册: 1.Web层:①前端,进行表单校验,设置正则表达式,并异步提交表单
②servlet,先进行验证码的校验,对从session中获取的数据进行判断,并序列化为json返回给客户端。然后从前端获取数据,封装对象,调用service进行判断,将判断序列化为json ,写回客户端。
2.Service层:根据用户名查询用户对象,并判断,然后保存用户信息
3.Dao层:定义、执行sql语句,返回结果
用户登录: 1.Web层:在login.html中,给登录按钮绑定单击事件,发送ajax请求,提交表单数据。在servlet中,获取前端的用户名和密码,封装对象,调用service查询,对用户对象判断,并对结果序列化返回,响应数据
2.Service层:返回数据库查询的结果
3.Dao层,定义、执行sql查询语句,返回结果
作者:
林艺彬
时间:
2019-5-20 19:27
分别将用户注册,用户登录的业务逻辑用自己的话描述出来
用户注册业务逻辑:
①给前端表单绑定提交事件,给所有输入框绑定失焦事件,检验所有输入框的数据是否符合要求,如果都符合,则是由ajax的get方法将表单提交。
②在后台Servlet层中先判断验证码是否正确,如果不正确直接在页面给出提示验证码错误,反之验证码正确则获取表单数据,并将表单数据封装成一个user对象。
③调用service层中的方法,将Servlet层中封装的user对象作为参数传入。
④在service层中调用dao层中的方法,根据传下来的user对象进行数据库查询。然后根据dao层返回的数据进行判断,如果返回的数据为空,则说明数据库没有这个用户,返回true,如果不为空,返回false。
⑤Servlet层根据service层返回的值进行判断,将结果存入ResultInfo对象中,将ResultInfo序列为json串,返回给页面,如果为true,页面跳转到注册成功页面,失败则提醒用户注册失败。
用户登录业务逻辑:
①给前端登录按钮绑定单击事件,使用ajxa的get方法将数据传入后台。
②在servlet层中先判断验证码是否正确,如果不正确直接在页面给出提示验证码错误,如果正确将数据封装为user对象。
③调用servce层中的方法,将servlet层中封装的对象传入。
④在service层中调用dao层中的方法,根据传下来的user对象的用户名和密码进行数据库查询,返回一个新的user对象。
⑤在servle层中对service层返回的对象进行判断,如果为空,则说明数据不存在,向页面返回一个账号或者密码错误,如果不为空,说明用户登录成功,页面跳转到首页。
作者:
chenopen
时间:
2019-5-20 19:38
陈开明:
用户注册:
前端页面:
○1写入口函数,通过checkUsername() && checkPassword() && checkEmail()等函数,判断用户输入的信息格式等是否准确。
○2利用异步请求技术ajax,将注册信息发送给后台服务器。
○3注册成功,则跳转到登陆页面;注册失败,则返回失败信息。
后端处理:
○1servlet层:
1. 获取用户输入的验证码信息,与后端服务器的信息比较,验证码不准确则返回错误提示给前端页面。
2. 验证码正确,将用户前端输入的信息,使用BeanUtils封装成user对象。
3. 创建UserServiceImpl对象,调用register方法,返回boolean值。
4. 通过返回的boolean值,回写信息给前端页面,提示是否注册成功。
5. 返回的信息,封装为ResultInfo对象,将ResultInfo对象序列化为json对象,方便前端页面解析。
○2service层:
1. 创建UserDaoImpl对象,重写register方法。
2. Register方法,里面调用UserDaoImpl的findUserByUserName方法,返回一个User对象;里面调用UserDaoImpl的registerUser方法,添加一个User对象。
3. 如果User对象不为空,则代表此用户名被注册过,返回false,否则返回true,并将新用户信息添加到数据库。
○3dao层:
1. 定义两个方法,一个是findUserByUserName方法,通过username来查找这个用户名是否被注册过,若有,返回一个user对象,否则返回null。
2. 一个是registerUser方法,将新增的用户信息添加到数据库。
用户登录:
前端页面:
○1写入口函数,在登录按钮上面绑定单击事件。
○2利用异步请求技术ajax,将表单数据serialize()后,发送给后台服务器。
○3登录成功,则跳转到首页页面;登录失败,则返回失败信息。
后端处理:
○1servlet层:
1. 获取用户输入的验证码信息,与后端服务器的信息比较,验证码不准确则返回错误提示给前端页面。
2. 验证码正确,将用户前端输入的信息,使用BeanUtils封装成user对象。
3. 创建UserServiceImpl对象,调用login方法,返回loginUser对象。
4. 通过返回的loginUser值,回写信息给前端页面,提示是否登录成功。
5. 返回的信息,封装为ResultInfo对象,将ResultInfo对象序列化为json对象,方便前端页面解析。
○2service层:
1. 创建UserDaoImpl对象,重写login方法。
2. login方法,里面调用UserDaoImpl的findUserByUserNameAndPassword
方法,返回一个User对象
○3dao层:
1.定义findUserByUserNameAndPassword方法,通过username和password来查找这个用户,若有,返回一个user对象,否则返回null。
作者:
java基础6期刘伟
时间:
2019-5-20 20:27
用户注册:
用户提交表单信息时,访问registServlet。
获取数据,调用service的方法查询数据库。
在Dao中,通过username进行查找。
如果有重名的用户,返回user对象,非null,注册失败。
如果查询后返回null,那么说明没有注册过该用户名,返回注册成功。
跳转到成功页面。
用户登录:点击登陆按钮后,后端先获取前端传递过来的验证码,如果为空或者和图片验证码不同,则直接登陆失败,设置错误信息。验证码成功后获取前端传递过来的username和password调用登陆方法去数据库查找,如果能查到数据,说明登录成功,直接返回true,如果查不到数据,说明登录失败,返回flase并设置错误信息,在序列化为json到前端。如果是true,直接跳转到首页,如果是false则提示错误信息。
作者:
余建强
时间:
2019-5-20 21:12
分别将用户注册,用户激活,的业务逻辑用自己的话描述出来
答:
用户注册:
用户提交表单信息时,访问registServlet。
获取数据,调用service的方法查询数据库。
在Dao中,通过username进行查找。
如果有重名的用户,返回user对象,非null,注册失败。
如果查询后返回null,那么说明没有注册过该用户名,返回注册成功。
跳转到成功页面。
用户激活:
通过两个值来实现: status code
在上面注册案例中,升级功能。
在Dao层返回查询结果为null时,
设置code激活码,通过UuidUtil.getUuid(),
设置status激活状态为“N”
并且通过 MailUtils.sendMail(user.getEmail(),content,"测试邮件");发送邮件给用户激活。
在content 中设置activeUserServlet?coad=user.getUid(),让用户访问activeUserServlet资源。并且携带code
在activeUserServlet中获取code,然后在数据库查,是否有该用户。
如果有该用户,service返回ture。
然后返回servlet中,分为两种情况,激活成功,跳转页面,到登录页面。激活不成功,友情提示!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2