首页 基于Struts+Spring+JDBC架构的课程设计实训教学示例项目——《网上银行账户管理系统》——分离Servlet类中的数据验证逻辑与业务调度逻辑

基于Struts+Spring+JDBC架构的课程设计实训教学示例项目——《网上银行账户管理系统》——分离Servlet类中的数据验证逻辑与业务调度逻辑

举报
开通vip

基于Struts+Spring+JDBC架构的课程设计实训教学示例项目——《网上银行账户管理系统》——分离Servlet类中的数据验证逻辑与业务调度逻辑基于Struts+Spring+JDBC架构的课程设计实训教学示例项目——《网上银行账户管理系统》——分离Servlet类中的数据验证逻辑与业务调度逻辑 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 基于Struts+Spring+JDBC架构的课程设计实训教学示例项目——《网上 银行账户管理系统》——分离Servlet类中的数据验证逻辑与业务 调度逻辑 1.1.1 分离前台用户信息/帐户信息管理的Servlet类中的数据验证逻辑与业务调度逻辑 1、添加一个针对所有的Servlet类中的方法验证的...

基于Struts+Spring+JDBC架构的课程设计实训教学示例项目——《网上银行账户管理系统》——分离Servlet类中的数据验证逻辑与业务调度逻辑
基于Struts+Spring+JDBC架构的课程 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 实训教学示例项目——《网上银行账户管理系统》——分离Servlet类中的数据验证逻辑与业务调度逻辑 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 基于Struts+Spring+JDBC架构的课程设计实训教学示例项目——《网上 银行账户管理系统》——分离Servlet类中的数据验证逻辑与业务 调度逻辑 1.1.1 分离前台用户信息/帐户信息管理的Servlet类中的数据验证逻辑与业务调度逻辑 1、添加一个针对所有的Servlet类中的方法验证的过滤器组件基类 (1)类名称为CheckAllWebFormBaseFilter、包名称为com.px1987.webbank.filter、实现javax.servlet.Filter接口 (2)编程该CheckAllWebFormBaseFilter类以提供共性的功能实现 杨教授大学堂,版权所有,盗版必究。 1/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 package com.px1987.webbank.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import com.px1987.webbank.config.TargetPageNameConfig; //该Filter组件是为J2EE Web 提供的基类Filter public class CheckAllWebFormBaseFilter implements Filter { protected String checkAllWebFormBaseFilter_errorInfoTargetPage=null; RequestDispatcher oneRequestDispatcher=null; HttpSession session=null; String verifyCodeInSession=null; public CheckAllWebFormBaseFilter() { } public void destroy() { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { 杨教授大学堂,版权所有,盗版必究。 2/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 request.setCharacterEncoding("GBK"); session=((HttpServletRequest)request).getSession(); verifyCodeInSession=(String)session.getAttribute("verifyCode"); return; } public void init(FilterConfig arg0) throws ServletException { checkAllWebFormBaseFilter_errorInfoTargetPage= TargetPageNameConfig.getProperty("allWebFormBaseFilter_errorInfoTargetPage"); } } (3)在allTargetPageConfig.properties文件中定义一个属性项目 checkAllWebFormBaseFilter.errorInfoTargetPage=/J2EEWeb/errorDeal/showWebAppErrorAndReturn.jsp 2、添加一个针对UserInfoManageServlet类中的各个方法验证的过滤器(/ userInfoManageAction.action) (1)类名称为FormRequestTransferCoding、包名称为com.px1987.webbank.filter、继 承前面的CheckAllWebFormBaseFilter类 杨教授大学堂,版权所有,盗版必究。 3/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 (2)编程该FormRequestTransferCoding类 package com.px1987.webbank.filter; import java.io.IOException; import java.util.Date; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; 杨教授大学堂,版权所有,盗版必究。 4/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 import org.apache.commons.validator.GenericValidator; import com.px1987.webbank.config.TargetPageNameConfig; import com.px1987.webbank.exception.WebBankException; import com.px1987.webbank.model.vo.AccountInfoVO; import com.px1987.webbank.util.MD5JavaBean; public class FormRequestTransferCoding extends CheckAllWebFormBaseFilter { public FormRequestTransferCoding() { super(); } public void destroy() { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { super.doFilter(request, response, filterChain); boolean checkResult=true; String action=request.getParameter("action"); // ************下面是获得请求的类型并相应地跳转到目标处理方法中******** if(action.equals("doUserLogin")){ checkResult=checkDoUserLoginForm(request); } else if(action.equals("doGetPassWord")){ checkResult=checkDoGetPassWordForm(request); } else if(action.equals("doGetUserPassWordAndUpdate")){ checkResult=checkDoGetUserPassWordAndUpdateForm(request); } else if(action.equals("doUpdateUserPassWord")){ checkResult=checkDoUpdateUserPassWordForm(request); } else if(action.equals("doAddNewAccountInfo")){ 杨教授大学堂,版权所有,盗版必究。 5/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 checkResult=checkDoAddNewAccountInfoForm(request); } if(action.equals("doGetOutMoney")){ checkResult=checkDoGetOutMoneyForm(request); } if(action.equals("doTransmitAccount")){ checkResult=checkDoTransmitAccountForm(request); } if(!checkResult){ oneRequestDispatcher=request.getRequestDispatcher(checkAllWebFormBaseFilte r_errorInfoTargetPage); oneRequestDispatcher.forward(request, response); return; } filterChain.doFilter(request, response); } public void init(FilterConfig arg0) throws ServletException { super.init(arg0); } public boolean checkDoAddNewAccountInfoForm(ServletRequest request){ // ************下面为检查验证码是否正确 ********************* String verifyCodeDigitInputed=request.getParameter("verifyCodeDigit"); if(GenericValidator.isBlankOrNull(verifyCodeDigitInputed)){ request.setAttribute("errorText", "验证码不能为空!请输入本网站所提供 的6位验证码!"); return false; } if(!verifyCodeDigitInputed.equals(verifyCodeInSession)) { request.setAttribute("errorText","您的验证码不正确,请输入本网站所提 供的6位验证码~"); 杨教授大学堂,版权所有,盗版必究。 6/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 return false; } String balance=request.getParameter("balance"); if(!GenericValidator.isFloat(balance)){ request.setAttribute("errorText", "存款金额必须为数字!请重新输入您的存款金额!"); return false; } String accountInfo_ActionType=request.getParameter("accountInfo_ActionType"); switch(Integer.parseInt(accountInfo_ActionType)){ case 1: //开设帐户 String idCard=request.getParameter("idCard"); if(Float.parseFloat(balance)<1.0f){ request.setAttribute("errorText", "开户存款金额必须大于1元人民币!请重新输入您的开户存款金额!"); return false; } if(GenericValidator.isBlankOrNull(idCard)){ request.setAttribute("errorText", "您的身份证号输入不能为空!请输入您的有效身份证号!"); return false; } if(idCard.length()!=18){ request.setAttribute("errorText", "有效身份证号应该是18位数字!请输入您的有效身份证号!"); return false; } break; case 2: //追加存款 杨教授大学堂,版权所有,盗版必究。 7/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 String accountID=request.getParameter("accountID"); if(GenericValidator.isBlankOrNull(accountID)){ //对于选择框,有缺少的选择项目 request.setAttribute("errorText", "请选择您的存款帐号!"); return false; } break; } return true; } public boolean checkDoGetOutMoneyForm(ServletRequest request){ // ********************下面为检查验证码是否正确 ************ String verifyCodeDigitInputed=request.getParameter("verifyCodeDigit"); if(GenericValidator.isBlankOrNull(verifyCodeDigitInputed)){ request.setAttribute("errorText", "验证码不能为空!请输入本网站所提供的6位验证码!"); return false; } if(!verifyCodeDigitInputed.equals(verifyCodeInSession)) { request.setAttribute("errorText","您的验证码不正确,请输入本网站所提供的6位验证码~"); return false; } String idCard=request.getParameter("idCard"); if(GenericValidator.isBlankOrNull(idCard)){ request.setAttribute("errorText", "您的身份证号输入不能为空!请输入您的有效身份证号!"); return false; } if(idCard.length()!=18){ 杨教授大学堂,版权所有,盗版必究。 8/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 request.setAttribute("errorText", "有效身份证号应该是18位数字!请输 入您的有效身份证号!"); return false; } String accountInfo_ActionType= request.getParameter("accountInfo_ActionType"); switch(Integer.parseInt(accountInfo_ActionType)){ case 1: //取出款额 String balance=request.getParameter("balance"); if(!GenericValidator.isFloat(balance)){ request.setAttribute("errorText", "取款金额必须为数字!请重新 输入您的取款金额!"); return false; } break; case 2: //销毁帐户 String userPassWord=request.getParameter("userPassWord"); if(GenericValidator.isBlankOrNull(userPassWord)){ request.setAttribute("errorText", "您的帐户密码不能为空!请输 入您的有效帐户密码!"); return false; } break; } return true; } public boolean checkDoTransmitAccountForm(ServletRequest request){ // ********************下面为检查验证码是否正确 **************** String verifyCodeDigitInputed=request.getParameter("verifyCodeDigit"); if(GenericValidator.isBlankOrNull(verifyCodeDigitInputed)){ 杨教授大学堂,版权所有,盗版必究。 9/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 request.setAttribute("errorText", "验证码不能为空!请输入本网站所提供 的6位验证码!"); return false; } { if(!verifyCodeDigitInputed.equals(verifyCodeInSession)) request.setAttribute("errorText","您的验证码不正确,请输入本网站所提 供的6位验证码~"); return false; } String balance=request.getParameter("balance"); if(!GenericValidator.isFloat(balance)){ request.setAttribute("errorText", "取款金额必须为数字!请重新输入您的 取款金额!"); return false; } return true; } public boolean checkDoUserLoginForm(ServletRequest request){ // ********************下面为检查验证码是否正确 ******************* String verifyCodeDigitInputed=request.getParameter("verifyCodeDigit"); if(GenericValidator.isBlankOrNull(verifyCodeDigitInputed)){ request.setAttribute("errorText", "验证码不能为空!请输入本网站所提供 的6位验证码!"); return false; } if(!verifyCodeDigitInputed.equals(verifyCodeInSession)) { request.setAttribute("errorText","您的验证码不正确,请输入本网站所提 供的6位验证码~"); return false; } 杨教授大学堂,版权所有,盗版必究。 10/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 /* * 下面对用户在登陆 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 单中的输入项目进行服务器端的验证 */ String userName=request.getParameter("userName"); String userPassWord= request.getParameter("oneUserPassWordBean.userPassWord"); if(GenericValidator.isBlankOrNull(userName)){ request.setAttribute("errorText", "用户名称不能为空!请输入您的用户名称!"); return false; } if(GenericValidator.isBlankOrNull(userPassWord)){ request.setAttribute("errorText", "用户密码名称不能为空!请输入您的用户密码!"); return false; } if(!GenericValidator.maxLength(userPassWord, 18)){ request.setAttribute("errorText", "用户密码不能超过18位!"); return false; } if(!GenericValidator.minLength(userPassWord, 4)){ request.setAttribute("errorText", "用户密码不能小于4位!"); return false; } return true; } public boolean checkDoGetPassWordForm(ServletRequest request){ // ********************下面为检查验证码是否正确 ******************** String verifyCodeDigitInputed=request.getParameter("verifyCodeDigit"); if(GenericValidator.isBlankOrNull(verifyCodeDigitInputed)){ request.setAttribute("errorText", "验证码不能为空!请输入本网站所提供 的6位验证码!"); 杨教授大学堂,版权所有,盗版必究。 11/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 return false; } if(!verifyCodeDigitInputed.equals(verifyCodeInSession)) { request.setAttribute("errorText","您的验证码不正确,请输入本网站所提 供的6位验证码~"); return false; } String passWordAsk= request.getParameter("oneUserPassWordBean.passWordAsk"); String passWordAnswer= request.getParameter("oneUserPassWordBean.passWordAnswer"); if(GenericValidator.isBlankOrNull(passWordAsk)){ request.setAttribute("errorText", "找回密码时的回答问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 不能为空!"); return false; } if(GenericValidator.isBlankOrNull(passWordAnswer)){ request.setAttribute("errorText", "找回密码时的回答问题的 答案 八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案 不能为 空!"); return false; } return true; } public boolean checkDoGetUserPassWordAndUpdateForm(ServletRequest request){ String userNewPassWord= request.getParameter("oneUserPassWordBean.userNewPassWord"); if(GenericValidator.isBlankOrNull(userNewPassWord)){ request.setAttribute("errorText", "用户新密码名称不能为空!请输入您的 用户新密码!"); return false; } 杨教授大学堂,版权所有,盗版必究。 12/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 if(!GenericValidator.maxLength(userNewPassWord, 18)){ request.setAttribute("errorText", "用户新密码不能超过18位!"); return false; } if(!GenericValidator.minLength(userNewPassWord, 4)){ request.setAttribute("errorText", "用户新密码不能小于4位!"); return false; } String confirmPassWord= request.getParameter("oneUserPassWordBean.confirmPassWord"); if(!userNewPassWord.equals(confirmPassWord)){ request.setAttribute("errorText", "确认密码应该与用户新密码保持一 致!"); return false; } return true; } public boolean checkDoUpdateUserPassWordForm(ServletRequest request){ // ********************下面为检查验证码是否正确 ****************** String verifyCodeDigitInputed=request.getParameter("verifyCodeDigit"); if(GenericValidator.isBlankOrNull(verifyCodeDigitInputed)){ request.setAttribute("errorText", "验证码不能为空!请输入本网站所提供 的6位验证码!"); return false; } if(!verifyCodeDigitInputed.equals(verifyCodeInSession)) { request.setAttribute("errorText","您的验证码不正确,请输入本网站所提 供的6位验证码~"); return false; } 杨教授大学堂,版权所有,盗版必究。 13/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 String userName=request.getParameter("userName"); String userPassWord= request.getParameter("oneUserPassWordBean.userPassWord"); if(GenericValidator.isBlankOrNull(userName)){ request.setAttribute("errorText", "用户名称不能为空!请输入您的用户名 称!"); return false; } if(GenericValidator.isBlankOrNull(userPassWord)){ request.setAttribute("errorText", "用户密码名称不能为空!请输入您的用 户密码!"); return false; } if(!GenericValidator.maxLength(userPassWord, 18)){ request.setAttribute("errorText", "用户密码不能超过18位!"); return false; } if(!GenericValidator.minLength(userPassWord, 4)){ request.setAttribute("errorText", "用户密码不能小于4位!"); return false; } String userNewPassWord= request.getParameter("oneUserPassWordBean.userNewPassWord"); if(GenericValidator.isBlankOrNull(userNewPassWord)){ request.setAttribute("errorText", "用户新密码名称不能为空!请输入您的 用户新密码!"); return false; } if(!GenericValidator.maxLength(userNewPassWord, 18)){ request.setAttribute("errorText", "用户新密码不能超过18位!"); 杨教授大学堂,版权所有,盗版必究。 14/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 return false; } if(!GenericValidator.minLength(userNewPassWord, 4)){ request.setAttribute("errorText", "用户新密码不能小于4位!"); return false; } String confirmPassWord= request.getParameter("oneUserPassWordBean.confirmPassWord"); if(!userNewPassWord.equals(confirmPassWord)){ request.setAttribute("errorText", "确认密码应该与用户新密码保持一 致!"); return false; } return true; } } (3)在web.xml文件中部署该FormRequestTransferCoding过滤器组件 formRequestTransferCoding com.px1987.webbank.filter.FormRequestTransferCoding formRequestTransferCoding /userInfoManageAction.action 杨教授大学堂,版权所有,盗版必究。 15/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 (4)进行登陆系统等方面的功能以测试该FormRequestTransferCoding过滤器组件类的效果---测试没有正确地输入验证码的错误 过滤SQL语句的特殊的字符串 下面是一般的JDBC访问代码 Statement stmt = conn.createStatement(); String checkUser = "select * from login where username = '"+ userName +"'and userpassword = '"+ userPassword +"'"; ResultSet rs = stmt.executeQuery(checkUser); 杨教授大学堂,版权所有,盗版必究。 16/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 if(rs.next()) response.sendRedirect("SuccessLogin.jsp"); else response.sendRedirect("FailureLogin.jsp"); 但如果数据库里存在一个名叫“yang”的用户,那么在不知道密码的情况下至少有下面几种方法可以登录: 用户名:yang 密码:' or 'a'='a 用户名:yang 密码:' or 1=1/* 用户名:yang' or 1=1/* 密码:(任意) 因此,应该对所接收到的用户名称和密码的字符串进行特殊符号的过滤以避免出现“后门”。 if(userName.equals("") ?? userPswd.equals("")) throw new UserException("用户名或密码不能空。"); if(userName.indexOf("'") != -1 ?? userName.indexOf("\"") != -1 ?? userName.indexOf(",") != -1 ??userName.indexOf("\\") != -1) throw new UserException("用户名不能包括 ' \" \\ , 等非法字符。"); if(userPswd.indexOf("'") != -1 ?? userPswd.indexOf("\"") != -1 ?? userPswd.indexOf("*") != -1 ?? userPswd.indexOf("\\") != -1) throw new UserException("密码不能包括 ' \" \\ * 等非法字符。"); if(userName.startsWith(" ") ?? userPswd.startsWith(" ")) throw new UserException("用户名或密码中不能用空格。"); 3、添加一个针对UserRegisterAndUpdateServlet类中的各个方法验证的过滤器(/ registerAndUpdateAction.action) (1)类名称为CheckUserRegisterAndUpdateFilter、包名称为com.px1987.webbank.filter、继承前面的CheckAllWebFormBaseFilter类 杨教授大学堂,版权所有,盗版必究。 17/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 (2)编程该CheckUserRegisterAndUpdateFilter类 注意:在该CheckUserRegisterAndUpdateFilter类中不能采用常规的获得表单数据的方式获得表单数据,因为其表单中有文件上传的功能实现。 另外,由于在在Filter中直接应用了DiskFileItemFactory获得表单的请求参数,因此在Servlet组件中获得由CheckUserRegisterAndUpdateFilter转发来的表单的参数。 package com.px1987.webbank.filter; import java.io.IOException; import java.util.HashMap; import java.util.List; 杨教授大学堂,版权所有,盗版必究。 18/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 import java.util.Map; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.commons.validator.GenericValidator; public class CheckUserRegisterAndUpdateFilter extends CheckAllWebFormBaseFilter{ private static final int BUFFER_SIZE = 16 * 1024 ; public CheckUserRegisterAndUpdateFilter() { super(); } public void destroy() { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { super.doFilter(request, response, filterChain); boolean checkResult=true; //实例化一个磁盘文件工厂DiskFileItemFactory DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory(); diskFileItemFactory.setSizeThreshold(BUFFER_SIZE); //用磁盘文件工厂实例化上传组件ServletFileUpload ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory); 杨教授大学堂,版权所有,盗版必究。 19/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 Map registerFormAllItemMap =null; FileItem uploadFileItem=null; try{ /* 用上传组件ServletFileUpload解析request对象,并从request对象中得到表单域 List */ List fileItems = servletFileUpload.parseRequest((HttpServletRequest)request); registerFormAllItemMap= new HashMap(); //遍历List,找到上传表单域和非上传表单域 for (FileItem fileItem : fileItems){ // 是普通表单域 if (fileItem.isFormField()){ registerFormAllItemMap.put(fileItem.getFieldName(), fileItem.getString()); } else{ // 是上传表单域 uploadFileItem=fileItem; } } } catch (FileUploadException e) { throw new IOException(e.getMessage()); } String action=registerFormAllItemMap.get("action");; //*******************下面是获得请求的类型并相应地跳转到目标处理方法中********* if(action.equals("doUserRegister")){ checkResult=checkDoUserRegisterForm(request,registerFormAllItemMap); } 杨教授大学堂,版权所有,盗版必究。 20/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 else if(action.equals("doUpdateUserInfo")){ checkResult=checkDoUpdateUserInfoForm(request,registerFormAllItemMap); } if(!checkResult){ oneRequestDispatcher=request.getRequestDispatcher(checkAllWebFormBaseFilter_errorInfoTargetPage); oneRequestDispatcher.forward(request, response); return; } /* * 由于在本表单中直接应用了DiskFileItemFactory获得表单的请求参数,为此采用将表 单的各个属性参数通过request传到对应的Servlet类中 */ request.setAttribute("registerFormAllItemMap", registerFormAllItemMap); request.setAttribute("uploadFileItem", uploadFileItem); filterChain.doFilter(request, response); } public void init(FilterConfig arg0) throws ServletException { super.init(arg0); } public boolean checkDoUserRegisterForm(ServletRequest request,Map registerFormAllItemMap){ HttpSession session=((HttpServletRequest)request).getSession(); String verifyCodeInSession=(String)session.getAttribute("verifyCode"); String verifyCodeDigitByInputed= registerFormAllItemMap.get("verifyCodeDigit"); if(GenericValidator.isBlankOrNull(verifyCodeDigitByInputed)){ request.setAttribute("errorText", "验证码不能为空!请输入本网站所提供 的6位验证码!"); return false; 杨教授大学堂,版权所有,盗版必究。 21/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 } if(!verifyCodeDigitByInputed.equals(verifyCodeInSession)) { request.setAttribute("errorText","您的验证码不正确,请输入本网站所提 供的6位验证码~"); return false; } /* * 下面对用户在登陆表单中的输入项目进行服务器端的验证 */ String userName=registerFormAllItemMap.get("userName"); String userPassWord= registerFormAllItemMap.get("oneUserPassWordBean.userPassWord"); if(GenericValidator.isBlankOrNull(userName)){ request.setAttribute("errorText", "用户名称不能为空!请输入您的用户名 称!"); return false; } if(GenericValidator.isBlankOrNull(userPassWord)){ request.setAttribute("errorText", "用户密码名称不能为空!请输入您的用 户密码!"); return false; } if(!GenericValidator.maxLength(userPassWord, 18)){ request.setAttribute("errorText", "用户密码不能超过18位!"); return false; } if(!GenericValidator.minLength(userPassWord, 4)){ request.setAttribute("errorText", "用户密码不能小于4位!"); return false; } 杨教授大学堂,版权所有,盗版必究。 22/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 String confirmPassWord= registerFormAllItemMap.get("oneUserPassWordBean.confirmPassWord"); if(!userPassWord.equals(confirmPassWord)){ request.setAttribute("errorText", "确认密码应该与用户密码保持一 致!"); return false; } return true; } public boolean checkDoUpdateUserInfoForm(ServletRequest request,Map registerFormAllItemMap){ HttpSession session=((HttpServletRequest)request).getSession(); String verifyCodeInSession=(String)session.getAttribute("verifyCode"); String verifyCodeDigitByInputed= registerFormAllItemMap.get("verifyCodeDigit"); if(GenericValidator.isBlankOrNull(verifyCodeDigitByInputed)){ request.setAttribute("errorText", "验证码不能为空!请输入本网站所提供 的6位验证码!"); return false; } if(!verifyCodeDigitByInputed.equals(verifyCodeInSession)) { request.setAttribute("errorText","您的验证码不正确,请输入本网站所提 供的6位验证码~"); return false; } /* * 下面对用户在登陆表单中的输入项目进行服务器端的验证 */ String userName=registerFormAllItemMap.get("userName"); String userPassWord= 杨教授大学堂,版权所有,盗版必究。 23/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 registerFormAllItemMap.get("oneUserPassWordBean.userPassWord"); if(GenericValidator.isBlankOrNull(userName)){ request.setAttribute("errorText", "用户名称不能为空!请输入您的用户名称!"); return false; } if(GenericValidator.isBlankOrNull(userPassWord)){ request.setAttribute("errorText", "用户密码名称不能为空!请输入您的用户密码!"); return false; } if(!GenericValidator.maxLength(userPassWord, 18)){ request.setAttribute("errorText", "用户密码不能超过18位!"); return false; } if(!GenericValidator.minLength(userPassWord, 4)){ request.setAttribute("errorText", "用户密码不能小于4位!"); return false; } String confirmPassWord= registerFormAllItemMap.get("oneUserPassWordBean.confirmPassWord"); if(!userPassWord.equals(confirmPassWord)){ request.setAttribute("errorText", "确认密码应该与用户密码保持一 致!"); return false; } return true; } } (3)在web.xml文件中部署该CheckUserRegisterAndUpdateFilter过滤器组件 杨教授大学堂,版权所有,盗版必究。 24/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 checkUserRegisterAndUpdateFilter com.px1987.webbank.filter.CheckUserRegisterAndUpdateFilter checkUserRegisterAndUpdateFilter /registerAndUpdateAction.action (4)进行系统注册等方面的功能以测试该CheckUserRegisterAndUpdateFilter过滤器组 件类的效果---测试没有正确地输入验证码的错误 杨教授大学堂,版权所有,盗版必究。 25/26页 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 杨教授大学堂,版权所有,盗版必究。 26/26页
本文档为【基于Struts+Spring+JDBC架构的课程设计实训教学示例项目——《网上银行账户管理系统》——分离Servlet类中的数据验证逻辑与业务调度逻辑】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_281650
暂无简介~
格式:doc
大小:272KB
软件:Word
页数:0
分类:互联网
上传时间:2017-10-27
浏览量:10