图书管理系统之注册

上传人:大米 文档编号:567478553 上传时间:2024-07-20 格式:PPT 页数:25 大小:186.50KB
返回 下载 相关 举报
图书管理系统之注册_第1页
第1页 / 共25页
图书管理系统之注册_第2页
第2页 / 共25页
图书管理系统之注册_第3页
第3页 / 共25页
图书管理系统之注册_第4页
第4页 / 共25页
图书管理系统之注册_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《图书管理系统之注册》由会员分享,可在线阅读,更多相关《图书管理系统之注册(25页珍藏版)》请在金锄头文库上搜索。

1、图书管理系统图书管理系统主要内容主要内容:图书管理系统的注册模块图书管理系统的注册模块作者:084班 黎印根(20081543)注册的主要功能模块简介:v1.用户名验证用户名验证:在用户名后面输入用户名后要到数据库中查找该用户是否存在;v2.密码验证密码验证:输入的密码不能为空v3.确认密码验证确认密码验证:输入的密码不能为空;且要和密码一致;v4.出生日期出生日期:从下拉列表中选择:年、月、日v5.手机号码验证手机号码验证:不能为空;要符合手机号码的格式;v6.电子邮件验证电子邮件验证:输入的电子邮件要符合相应的格式;v7.注册注册:点击”注册“按钮:要先判断输入的注册信息是否合法;如果合法

2、,则把对应得信息插入到数据库的user表中;v后面会对这些功能模块的具体实现做详细介绍后面会对这些功能模块的具体实现做详细介绍:注册模块所用到的知识点注册模块所用到的知识点:v1.javascript的局部刷新层的技术;以及刷新多个层的方法设计和参数设置;v2.数据库技术:数据库的链接;以及数据的查找和插入;v3.MVC技术:使用mvc模式进行设计;v4.正则表达式:验证数据输入格式;v5.日期格式在数据库和java之间格式的转换;v6.乱码的处理;v7.HTML技术和jsp技术以及servlet技术等;1.用户名验证模块的实现用户名验证模块的实现v用户名验证是注册模块中相对比较复杂的;其具体

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

4、ttp.responseText获取返回的值并更新到对应的层中;从而提醒用户:输入的用户名是否合法;v该过程判断的内容和返回的值可以看如下代码:部分代码:部分代码:vLoginNameCheck.java:vif (type.equals(a) v try v GetLoginName getLoginname = new GetLoginName();v userBean = getLoginname.getLoginname(loginname);v v catch (Exception e)v v e.printStackTrace();v v if (loginname != ) v

5、if (userBean != null)v v out.println(用户已存在 );v out.println();v v velse v v out.println(OK);v out.println();v v v v v v else if (loginname = ) v out.println(用户名不能为空);v out.println();v v vGetLoginName.java:v public UserBean getLoginname(String loginname)v throws Exceptionv v UserBean userBean = null;v

6、 DataBase db = new DataBase();v Connection cn = null;v PreparedStatement pst = null;v ResultSet rs = null;v tryv v cn = db.getconn();v String sql = select * from user where loginname=?;v pst = cn.prepareStatement(sql);v pst.setString(1, loginname);v rs = pst.executeQuery(); v if (rs.next() v userBea

7、n = new UserBean();v userBean.setUserid(rs.getInt(userid);v userBean.setLoginname(rs.getString(loginname);v userBean.setUsername(rs.getString(username);v userBean.setBirthday(rs.getDate(birthday);v userBean.setCert(rs.getString(cert);v userBean.setCerttype(rs.getString(certtype);v userBean.setEmail(

8、rs.getString(email);v userBean.setPassword(rs.getString(password);v userBean.setPhone(rs.getString(phone);v userBean.setRole(rs.getInt(role);v userBean.setSex(rs.getString(sex);v v catch (Exception e)v throw e; finallyv try pst.close();rs.close(); cn.close(); catch (Exception e) e.printStackTrace();

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

10、;然后通过判断后返回对应的内容到注册页面;注册页面通过xmlHttp.responseText获取返回的值并更新到对应的层中;从而提醒用户:输入的密码是否合法;v该过程判断的内容和返回的值可以看如下代码:代码部分:velse if (type.equals(b) v if (password = ) v out.println(密码不能为空 );v out.println();v v else if (password != ) v out.println(OK);v out.println();v v 3.确认密码验证具体实现:确认密码验证具体实现:v当在注册界面reg.jsp中的密码框中输

11、入数据后;用户会触发一个onblur事件,该事件调用一个javaScript中的startRequest(n)函数:参数n是传进来的文本框的值(userForm.repass.value);该函数调用createXMLHttpRequest()方法创建一个xmlHttp对象;通过该对象调用handleStateChange()方法;并把得到的用户名发送给一个servlet类(loginnameCheck.java);转发到该servlet后该类先获取该repass;然后通过判断后返回对应的内容到注册页面;注册页面通过xmlHttp.responseText获取返回的值并更新到对应的层中;从而提

12、醒用户:输入的确认密码是否合法;v该过程判断的内容和返回的值可以看如下代码:部分代码:v if (repass != ) v if (password.equals(repass) v out.println(OK);v out.println();v v else v out.println(2次输入密码不一致);v out.println();v v v else if (repass = )v out.println(密码不能为空);v out.println();v 4.出生日期具体实现:出生日期具体实现:v当在注册界面reg.jsp中的“出生年月”的下拉框中选择自己的出生:年、月、日

13、;这里比较简单,不需要验证:部分代码:vvv%vfor(int i=1900;ivoption value=vvvvvv v%for(int i=1;ivoption value=vvvvvv%vfor(int i=1;ivoption value=vvv5.手机号码验证具体实现:手机号码验证具体实现:v当在注册界面reg.jsp中的密码框中输入数据后;用户会触发一个onblur事件,该事件调用一个javaScript中的startRequest(n)函数:参数n是传进来的文本框的值(userForm.phone.value);该函数调用createXMLHttpRequest()方法创建一个

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

15、attern regex = Ppile(checkphone); v Matcher matcher = regex.matcher(phone);v if(matcher.matches()v out.println(OK);v out.println();v v elsev out.println(非法手机号码);v out.println();v v else if(phone=)v out.println(手机号码没有输入);v out.println();v 6.电子邮件验证具体实现:电子邮件验证具体实现:v当在注册界面reg.jsp中的密码框中输入数据后;用户会触发一个onblu

16、r事件,该事件调用一个javaScript中的startRequest(n)函数:参数n是传进来的文本框的值(userForm.email.value);该函数调用createXMLHttpRequest()方法创建一个xmlHttp对象;通过该对象调用handleStateChange()方法;并把得到的用户名发送给一个servlet类(loginnameCheck.java);转发到该servlet后该类先获取该email;然后通过正则表达式和if语句的判断后返回对应的内容到注册页面;注册页面通过xmlHttp.responseText获取返回的值并更新到对应的层中;从而提醒用户:输入的电

17、子邮件是否合法;v该过程判断的内容和返回的值可以看如下代码:部分代码:v if(email != )v String checkemail = (a-z0-9a-z+-|.?)+a-z0-9a-z(a-z0-9a-z+(-a-z0-9a-z+)?.)+a-za-z2,$; v Pattern regex = Ppile(checkemail); v Matcher matcher = regex.matcher(email); v if(matcher.matches()v out.println(OK);v out.println();v v elseout.println(输入的email

18、不正确);v out.println();v v else if(email =)v out.println(邮件不能为空);v out.println();v 7.注册具体实现:注册具体实现:v该模块是注册中最关键的一步:其具体实现为:点击注册界面reg.jsp的Form表单中的“注册”按钮;把数据发送给一个servlet类(AddUser.java);该类接受相应的数据后并判断其都合法后调用操作数据库的类AddUserModel.java类的add(userBean)方法,向数据库中增加相应的记录;v其过程存在许多细节问题,比如:获取日期后插入到数据库前先需要进行格式转换;还有插入中文时候

19、可能会出现乱码问题;还会出现许多异常;注册成功的条件设置问题等等。v下面我们对这些问题一一解答:日期的获取和格式转换日期的获取和格式转换:v部分代码部分代码: String year=request.getParameter(year);v String month=request.getParameter(month);v String day=request.getParameter(day); v birthday1 = year+-+month+-+day; v java.sql.Date birthday = null;v try v SimpleDateFormat sdf = n

20、ew SimpleDateFormat(yyyy-MM-dd);v java.util.Date date = sdf.parse(birthday1);v birthday = new java.sql.Date(date.getTime();v v catch (Exception e) e.printStackTrace(); 中文乱码问题:vrequest.setCharacterEncoding(UTF-8);v response.setContentType(text/html;charset=UTF-8);异常处理:v例如:空指针异常:我们先要判断它是否为空,如果为空,则为了不引

21、起异常,给他附一个非空的值;v部分代码部分代码:v String loginnameDiv=request.getParameter(loginnameDiv);v if(loginnameDiv=)v loginnameDiv=NO;v String passwordDiv=request.getParameter(passwordDiv); v if(passwordDiv=)v passwordDiv=NO;v String repassDiv=request.getParameter(repassDiv);v if(repassDiv=)v repassDiv=NO; vString

22、emailDiv=request.getParameter(emailDiv);v if(emailDiv=)v emailDiv=NO; v String phoneDiv=request.getParameter(phoneDiv);v if(phoneDiv=)v phoneDiv=NO;注册成功的条件设置v当要向数据库中插入注册信息之前:要先判断用户输入的所有数据是否都合理;如果都符合要求就注册成功;否则就转到失败界面;要判断用户输入的数据是否合理;关键是要获取验证信息是否都通过;也就是说必须获得DIV中的信息,当DIV中的信息都为”OK“时就说明数据合法;在另一个界面中要想通过For

23、m表单获得单纯的div信息是不可能的;所以我在返回OK的同时;我还多返回了一个隐藏文本框:该隐藏文本框的value=“OK”;v具体的代码如下:具体的代码如下:部分代码:v例如,合法的用户名返回的信息为:v out.println(OK);v out.println();v其他的以此类推.v注册成功的条件设置:vif (loginname!=&password!=&repass!=&email!=&phone!=&loginnameDiv.equals(OK)&passwordDiv.equals(OK)&repassDiv.equals(OK)&emailDiv.equals(OK)&phoneDiv.equals(OK)v要想了解跟多请看源代码!

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号