图书管理系统之注册.ppt

上传人:小飞机 文档编号:6558614 上传时间:2023-11-12 格式:PPT 页数:25 大小:347.65KB
返回 下载 相关 举报
图书管理系统之注册.ppt_第1页
第1页 / 共25页
图书管理系统之注册.ppt_第2页
第2页 / 共25页
图书管理系统之注册.ppt_第3页
第3页 / 共25页
图书管理系统之注册.ppt_第4页
第4页 / 共25页
图书管理系统之注册.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《图书管理系统之注册.ppt》由会员分享,可在线阅读,更多相关《图书管理系统之注册.ppt(25页珍藏版)》请在三一办公上搜索。

1、图书管理系统,主要内容:图书管理系统的注册模块作者:084班 黎印根(20081543),注册的主要功能模块简介:,1.用户名验证:在用户名后面输入用户名后要到数据库中查找该用户是否存在;2.密码验证:输入的密码不能为空3.确认密码验证:输入的密码不能为空;且要和密码一致;4.出生日期:从下拉列表中选择:年、月、日5.手机号码验证:不能为空;要符合手机号码的格式;6.电子邮件验证:输入的电子邮件要符合相应的格式;7.注册:点击”注册“按钮:要先判断输入的注册信息是否合法;如果合法,则把对应得信息插入到数据库的user表中;后面会对这些功能模块的具体实现做详细介绍:,注册模块所用到的知识点:,1

2、.javascript的局部刷新层的技术;以及刷新多个层的方法设计和参数设置;2.数据库技术:数据库的链接;以及数据的查找和插入;3.MVC技术:使用mvc模式进行设计;4.正则表达式:验证数据输入格式;5.日期格式在数据库和java之间格式的转换;6.乱码的处理;7.HTML技术和jsp技术以及servlet技术等;,1.用户名验证模块的实现,用户名验证是注册模块中相对比较复杂的;其具体实现过程是:当在注册界面reg.jsp中的用户名文本框中输入数据后;用户会触发一个onblur事件,该事件调用一个javaScript中的startRequest(n)函数:参数n是传进来的文本框的值();该

3、函数调用createXMLHttpRequest()方法创建一个xmlHttp对象;通过该对象调用handleStateChange()方法;并把得到的用户名发送给一个servlet类(loginnameCheck.java);转发到该servlet后该类先获取该用户名;然后通过查找数据库并判断后返回对应的内容到注册页面;注册页面通过xmlHttp.responseText获取返回的值并更新到对应的层中;从而提醒用户:输入的用户名是否合法;该过程判断的内容和返回的值可以看如下代码:,部分代码:,LoginNameCheck.java:if(type.equals(a)try GetLoginN

4、ame getLoginname=new GetLoginName();userBean=getLoginname.getLoginname(loginname);catch(Exception e)e.printStackTrace();if(loginname!=)if(userBean!=null)out.println(用户已存在);out.println();,else out.println(OK);out.println();else if(loginname=)out.println(用户名不能为空);out.println();,GetLoginName.java:publi

5、c UserBean getLoginname(String loginname)throws Exception UserBean userBean=null;DataBase db=new DataBase();Connection cn=null;PreparedStatement pst=null;ResultSet rs=null;try cn=db.getconn();String sql=select*from user where loginname=?;pst=cn.prepareStatement(sql);pst.setString(1,loginname);rs=pst

6、.executeQuery();,if(rs.next()userBean=new UserBean();userBean.setUserid(rs.getInt(userid);userBean.setLoginname(rs.getString(loginname);userBean.setUsername(rs.getString(username);userBean.setBirthday(rs.getDate(birthday);userBean.setCert(rs.getString(cert);userBean.setCerttype(rs.getString(certtype

7、);userBean.setEmail(rs.getString(email);userBean.setPassword(rs.getString(password);userBean.setPhone(rs.getString(phone);userBean.setRole(rs.getInt(role);userBean.setSex(rs.getString(sex);catch(Exception e)throw e;finally try pst.close();rs.close();cn.close();catch(Exception e)e.printStackTrace();r

8、eturn userBean;,2.密码验证模块的实现:,当在注册界面reg.jsp中的密码框中输入数据后;用户会触发一个onblur事件,该事件调用一个javaScript中的startRequest(n)函数:参数n是传进来的文本框的值();该函数调用createXMLHttpRequest()方法创建一个xmlHttp对象;通过该对象调用handleStateChange()方法;并把得到的用户名发送给一个servlet类(loginnameCheck.java);转发到该servlet后该类先获取该password;然后通过判断后返回对应的内容到注册页面;注册页面通过xmlHttp.r

9、esponseText获取返回的值并更新到对应的层中;从而提醒用户:输入的密码是否合法;该过程判断的内容和返回的值可以看如下代码:,代码部分:,else if(type.equals(b)if(password=)out.println(密码不能为空);out.println();else if(password!=)out.println(OK);out.println();,3.确认密码验证具体实现:,当在注册界面reg.jsp中的密码框中输入数据后;用户会触发一个onblur事件,该事件调用一个javaScript中的startRequest(n)函数:参数n是传进来的文本框的值();该

10、函数调用createXMLHttpRequest()方法创建一个xmlHttp对象;通过该对象调用handleStateChange()方法;并把得到的用户名发送给一个servlet类(loginnameCheck.java);转发到该servlet后该类先获取该repass;然后通过判断后返回对应的内容到注册页面;注册页面通过xmlHttp.responseText获取返回的值并更新到对应的层中;从而提醒用户:输入的确认密码是否合法;该过程判断的内容和返回的值可以看如下代码:,部分代码:,if(repass!=)if(password.equals(repass)out.println(OK

11、);out.println();else out.println(2次输入密码不一致);out.println();else if(repass=)out.println(密码不能为空);out.println();,4.出生日期具体实现:,当在注册界面reg.jsp中的“出生年月”的下拉框中选择自己的出生:年、月、日;这里比较简单,不需要验证:,部分代码:,5.手机号码验证具体实现:,当在注册界面reg.jsp中的密码框中输入数据后;用户会触发一个onblur事件,该事件调用一个javaScript中的startRequest(n)函数:参数n是传进来的文本框的值();该函数调用create

12、XMLHttpRequest()方法创建一个xmlHttp对象;通过该对象调用handleStateChange()方法;并把得到的用户名发送给一个servlet类(loginnameCheck.java);转发到该servlet后该类先获取该phoen;然后通过正则表达式和if语句的判断后返回对应的内容到注册页面;注册页面通过xmlHttp.responseText获取返回的值并更新到对应的层中;从而提醒用户:输入的手机号码是否合法;该过程判断的内容和返回的值可以看如下代码:,部分代码:,if(phone!=)String checkphone=00,1(134-9?|158-9|150-1

13、|187-8)0-98$;Pattern regex=Ppile(checkphone);Matcher matcher=regex.matcher(phone);if(matcher.matches()out.println(OK);out.println();else out.println(非法手机号码);out.println();else if(phone=)out.println(手机号码没有输入);out.println();,6.电子邮件验证具体实现:,当在注册界面reg.jsp中的密码框中输入数据后;用户会触发一个onblur事件,该事件调用一个javaScript中的sta

14、rtRequest(n)函数:参数n是传进来的文本框的值();该函数调用createXMLHttpRequest()方法创建一个xmlHttp对象;通过该对象调用handleStateChange()方法;并把得到的用户名发送给一个servlet类(loginnameCheck.java);转发到该servlet后该类先获取该email;然后通过正则表达式和if语句的判断后返回对应的内容到注册页面;注册页面通过xmlHttp.responseText获取返回的值并更新到对应的层中;从而提醒用户:输入的电子邮件是否合法;该过程判断的内容和返回的值可以看如下代码:,部分代码:,if(email!=

15、)String checkemail=(a-z0-9a-z+-|.?)+a-z0-9a-z(a-z0-9a-z+(-a-z0-9a-z+)?.)+a-za-z2,$;Pattern regex=Ppile(checkemail);Matcher matcher=regex.matcher(email);if(matcher.matches()out.println(OK);out.println();elseout.println(输入的email不正确);out.println();else if(email=)out.println(邮件不能为空);out.println();,7.注册具

16、体实现:,该模块是注册中最关键的一步:其具体实现为:点击注册界面reg.jsp的Form表单中的“注册”按钮;把数据发送给一个servlet类(AddUser.java);该类接受相应的数据后并判断其都合法后调用操作数据库的类AddUserModel.java类的add(userBean)方法,向数据库中增加相应的记录;其过程存在许多细节问题,比如:获取日期后插入到数据库前先需要进行格式转换;还有插入中文时候可能会出现乱码问题;还会出现许多异常;注册成功的条件设置问题等等。下面我们对这些问题一一解答:,日期的获取和格式转换:,部分代码:String year=request.getParame

17、ter(year);String month=request.getParameter(month);String day=request.getParameter(day);birthday1=year+-+month+-+day;birthday=null;try SimpleDateFormat sdf=new SimpleDateFormat(yyyy-MM-dd);date=sdf.parse(birthday1);birthday=new java.sql.Date(date.getTime();catch(Exception e)e.printStackTrace();,中文乱码

18、问题:,request.setCharacterEncoding(UTF-8);response.setContentType(text/html;charset=UTF-8);,异常处理:,例如:空指针异常:我们先要判断它是否为空,如果为空,则为了不引起异常,给他附一个非空的值;部分代码:String loginnameDiv=request.getParameter(loginnameDiv);if(loginnameDiv=)loginnameDiv=NO;String passwordDiv=request.getParameter(passwordDiv);if(passwordDi

19、v=)passwordDiv=NO;String repassDiv=request.getParameter(repassDiv);if(repassDiv=)repassDiv=NO;String emailDiv=request.getParameter(emailDiv);if(emailDiv=)emailDiv=NO;String phoneDiv=request.getParameter(phoneDiv);if(phoneDiv=)phoneDiv=NO;,注册成功的条件设置,当要向数据库中插入注册信息之前:要先判断用户输入的所有数据是否都合理;如果都符合要求就注册成功;否则就

20、转到失败界面;要判断用户输入的数据是否合理;关键是要获取验证信息是否都通过;也就是说必须获得DIV中的信息,当DIV中的信息都为”OK“时就说明数据合法;在另一个界面中要想通过Form表单获得单纯的div信息是不可能的;所以我在返回OK的同时;我还多返回了一个隐藏文本框:该隐藏文本框的value=“OK”;具体的代码如下:,部分代码:,例如,合法的用户名返回的信息为:out.println(OK);out.println();其他的以此类推.注册成功的条件设置:if(loginname!=&password!=&repass!=&email!=&phone!=&loginnameDiv.equals(OK)&passwordDiv.equals(OK)&repassDiv.equals(OK)&emailDiv.equals(OK)&phoneDiv.equals(OK)要想了解跟多请看源代码!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号