- 浏览: 280320 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (251)
- 面试基础 (9)
- java基础 (40)
- 调试配置 (10)
- 转载文章 (4)
- 心灵鸡汤 (8)
- java工具 (6)
- CSS学习 (7)
- css案例 (2)
- 经济 (1)
- 小节惹的祸 (1)
- 实例心得 (21)
- 数据库 (7)
- 有用的代码 (17)
- Struts (3)
- Hibernate (5)
- Spring (3)
- java xml (7)
- Java Reflection API (1)
- 网络配置 (4)
- SSH (8)
- java开源框架 (13)
- ajax (4)
- swing (1)
- 设计模式 (1)
- 未主流组件 (7)
- WebService (6)
- 20111019 (1)
- xiao清讲课笔笔~~~UML (0)
- 笔记 (2)
- SOAP (9)
- 第一天遇到的问题 (1)
- Java Card (3)
- 面试 (18)
- Java (17)
- JNLP 集群 (0)
- java 面试 (3)
最新评论
-
ap0406708:
138XXXXXXXX
webserivce spring-ws 安全 -
yezhuzhe:
...
[code]SSH上传下载 ------温故知新 -
thinking_ou:
怎么需要解压密码
webserivce spring-ws 安全 -
ap0406708:
uuu999ggg 写道连return都写错了
try catch finally 块 与 函数的return -
wst0350:
...
java正则表达式,js正则表达式
因为做的是wap端的网站,所以不能用到js,所以验证的工作就要放在服务器端,太麻烦了.
regedit.jsp页面
处理的servlet.
工具类
思路是servlet传参数回表单页面,控制错误信息的显示.
regedit.jsp页面
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jstl/core"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8"/> <title>注册页面</title> <jsp:include page="include/css.jsp" flush="true" /> </head> <body> <jsp:include page="include/head2.jsp" flush="true" /> <form action="<%=basePath%>servlet/GetCheckno"> <div> 手机号:<br/> <c:choose> <c:when test="${mobno2==1}"> <span style="color:red;"><b>手机号码格式不正确</b></span><br/> </c:when> <c:when test="${mobno2==3}"> <span style="color:red;"><b>注册手机不能为空</b></span><br/> </c:when> </c:choose> <input type="text" name="mobile" value="" /><br/> <input class="submit" type="submit" value="获取验证码" /> </div> </form> <form action="<%=basePath%>servlet/RegeditServlet" method=post> <div> 用户名:<br/> <c:choose> <c:when test="${userno==1}"> <span style="color:red;"><b>会员名在5-20个字符内,仅可由中英文、数字、下划线组成</b></span><br/> </c:when> <c:when test="${userno==2}"> <span style="color:red;"><b>该用户名已经存在</b></span><br/> </c:when> <c:when test="${userno==3}"> <span style="color:red;"><b>用户名不能为空</b></span><br/> </c:when> </c:choose> <input type="text" name="username" value="" /><br/> 用户密码:<br/> <c:choose> <c:when test="${psw1no==1}"> <span style="color:red;"><b>密码最少不能少于6位字符</b></span><br/> </c:when> <c:when test="${psw1no==3}"> <span style="color:red;"><b>密码不能为空</b></span><br/> </c:when> </c:choose> <input type="password" name="password" value="" /><br/> 确认密码:<br/> <c:choose> <c:when test="${psw2no==1}"> <span style="color:red;"><b>两次输入的密码不相同</b></span><br/> </c:when> <c:when test="${psw2no==3}"> <span style="color:red;"><b>确认密码不能为空</b></span><br/> </c:when> </c:choose> <input type="password" name="password2" value="" /><br/> 注册手机:<br/> <c:choose> <c:when test="${mobno==1}"> <span style="color:red;"><b>手机号码格式不正确</b></span><br/> </c:when> <c:when test="${mobno==3}"> <span style="color:red;"><b>注册手机不能为空</b></span><br/> </c:when> </c:choose> <input type="text" name="mobile" value="" /><br/> 验证码:<br/> <c:choose> <c:when test="${chkno==1}"> <span style="color:red;"><b>验证码格式不正确</b></span><br/> </c:when> <c:when test="${chkno==3}"> <span style="color:red;"><b>验证码不能为空</b></span><br/> </c:when> </c:choose> <input type="text" name="checkno" value="" /><br/> 注册邮箱:<br/> <c:choose> <c:when test="${email==1}"> <span style="color:red;"><b>邮箱格式不正确</b></span><br/> </c:when> <c:when test="${email==3}"> <span style="color:red;"><b>邮箱不能为空</b></span><br/> </c:when> </c:choose> <input type="text" name="email" value="" /><br/> <a href="<%=basePath%>servlet/ShowGreetMent">阅读服务协议</a><br/> <input class="submit" type="submit" value="同意并注册" /> </div> </form> <jsp:include page="include/foot.jsp" flush="true" /> </body> </html>
处理的servlet.
package com.mobile.web.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.log4j.MDC; import com.mobile.dao.jdbc.AccountDaoJdbc; import com.mobile.dao.jdbc.ChecknoJdbc; import com.mobile.object.Account; import com.mobile.service.impl.AccountManagerImpl; import com.zhao.util.UtilBean; public class RegeditServlet extends HttpServlet { private Log logger = LogFactory.getLog(this.getClass());//日志操作 private AccountDaoJdbc accountj; private ChecknoJdbc checkj; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } /* public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { boolean flat = true; int fail = 0; String mobile = request.getParameter("mobile"); String checkno = request.getParameter("checkno"); String username = request.getParameter("username"); String password = request.getParameter("password"); String password2 = request.getParameter("password2"); String email = request.getParameter("email"); String checknoSystem = checkj.getCheckno(mobile); String address="/RegeditSuccess.jsp"; if(checkno.equals(checknoSystem)&&password.equals(password2)) { Account account = new Account(); account.setMob(mobile); account.setUser(username); account.setPsw(password); account.setEmail(email); accountj.create(account); } else { address = "/RegeditFail.jsp"; if(!password.equals(password2)){ fail=1;//两次密码不同 address=address+"?fail=1"; } else if(!checkno.equals(checknoSystem)) { fail=2;//验证密不对 address=address+"?fail=2"; } } RequestDispatcher dispatcher = request.getRequestDispatcher(address); dispatcher.forward(request, response); } */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { MDC.put("method", "用户操作");//日志操作 String address="/RegeditSuccess.jsp"; boolean flat = true; int userno = 0; int psw1no =0 ; int psw2no =0; int mobno =0; int chkno =0; int emailno =0; String mobile = request.getParameter("mobile"); String checkno = request.getParameter("checkno"); String username = request.getParameter("username"); String password = request.getParameter("password"); String password2 = request.getParameter("password2"); String email = request.getParameter("email"); if(username.equals("")||username==null) { userno=3; flat=false; } else { if(!UtilBean.checkUser(username)) { userno=1; flat = false; } if(!AccountDaoJdbc.checkAccount(username)) { userno=2; flat = false; } } if(password.equals("")||password==null) { psw1no=3; flat = false; } else { if(!UtilBean.checkPsw(password)) { psw1no=1; flat = false; } } if(password2.equals("")||password2==null) { psw2no=3; flat = false; } else { if(!password.equals(password2)) { psw2no=1; flat = false; } } if(mobile.equals("")||mobile==null) { mobno=3; flat = false; } else { if(!UtilBean.checkMobile(mobile)) { mobno=1; flat = false; } } if(checkno.equals("")||checkno==null) { chkno=3; flat = false; } else { String checknoSystem = checkj.getCheckno(mobile); if(!checkno.equals(checknoSystem)) { chkno=1; flat = false; } } if(email.equals("")||email==null) { emailno=3; flat = false; } else { if(!UtilBean.checkEmail(email)) { emailno=1; flat = false; } } //System.out.println(emailno); if(flat==true) { Account account = new Account(); account.setMob(mobile); account.setUser(username); account.setPsw(password); account.setEmail(email); accountj.create(account); MDC.put("username",username);//日志操作 MDC.put("ip","127.0.0.1");//日志操作 MDC.put("system", "前台WAP端");//日志操作 logger.info("用户:"+username+"注册");//日志操作 address="/RegeditSuccess.jsp"; } else { address = "/regedit.jsp"; request.setAttribute("userno", userno); request.setAttribute("psw1no", psw1no); request.setAttribute("psw2no", psw2no); request.setAttribute("mobno", mobno); request.setAttribute("chkno", chkno); request.setAttribute("emailno", emailno); } RequestDispatcher dispatcher = request.getRequestDispatcher(address); dispatcher.forward(request, response); } public void init() throws ServletException { accountj = new AccountDaoJdbc(); checkj = new ChecknoJdbc(); } }
工具类
package com.zhao.util; import java.sql.Timestamp; import java.text.DecimalFormat; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.Random; import java.util.regex.Matcher; import java.util.regex.Pattern; public class UtilBean { /** * 判断字符串是否是整数 */ public static boolean isInteger(String value) { try { Integer.parseInt(value); return true; } catch (NumberFormatException e) { return false; } } //得到前几天,后几天(月,年)的时间 //年月日标记,正数前几天,负数后几天 public static Timestamp getBeforeTime(int nyr,int nyrNum) { long newlong = System.currentTimeMillis(); Calendar calendar = GregorianCalendar.getInstance(); calendar.setTimeInMillis(newlong); calendar.add(nyr,nyrNum); Timestamp time = new Timestamp(calendar.getTimeInMillis()); //System.out.println(UtilBean.getBeforeTime(Calendar.DAY_OF_MONTH, 100)); //calendar.add(Calendar.MONTH, 1) return time; } public static boolean isFloat(String value) { try { Float.parseFloat(value); return true; } catch (NumberFormatException e) { return false; } } public static String getSixIntStr() { Random r = new Random(); int sint = r.nextInt(1000000); DecimalFormat dfInt=new DecimalFormat("000000"); String str = dfInt.format(sint); return str; } public static boolean regex(String regex, String value) { Pattern p = Pattern.compile(regex); Matcher m = p.matcher(value); return m.find(); } public static boolean checkMobile(String value) { //手机号码 String regex = "\\d{11}"; //11位 return regex(regex,value); } public static boolean checkUser2(String value) { String regex = "[a-zA-Z1-9_]{5,20}"; return regex(regex,value); } public static boolean checkUser(String value) { String regex = "\\w{5,20}"; return regex(regex,value); } public static boolean checkEmail(String value) { String regex = "[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+"; return regex(regex,value); } public static boolean checkPsw(String value) { String regex = "\\w{6}"; return regex(regex,value); } public static boolean checkStr(String content,String filter) { //要过虑的字符,用|分隔 Matcher m=Pattern.compile(filter).matcher(content); if(m.find()) { return true; //有非法字符 } else { return false; } } public static boolean checkPostNo(String value) { String regex = "[0-9]{6}"; return regex(regex,value); } public static boolean checkCertificate(String value) { String regex = "^[0-9]{15}$|^[0-9]{18}$"; return regex(regex,value); } public static boolean checkTelno(String value) { //电话 String regex = "^[0-9]{6,20}$"; return regex(regex,value); } public static boolean checkAddress(String value) { //地址 //String regex = "^\\w{1,100}$"; //return regex(regex,value); if(value.length()<100&&value.length()>0) return true; return false; } public static boolean checkPerson(String value) { //String regex = "^\\w{1,20}$"; //return regex(regex,value); if(value.length()<20&&value.length()>0) return true; return false; } public static boolean isFloat2(String value) //价格不超过10位数字(可含两位小数) { String regex ="^[0-9]{1,10}$|^[0-9]{1,9}[.][0-9]{1}$|^[0-9]{1,8}[.][0-9]{1,2}$"; return regex(regex,value); } public static boolean isFloat7(String value) //价格不超过7位数字(可含两位小数) { String regex ="^[0-9]{1,7}$|^[0-9]{1,6}[.][0-9]{1}$|^[0-9]{1,5}[.][0-9]{1,2}$"; return regex(regex,value); } public static boolean String20(String value) { //String regex = "^\\w{1,20}$"; //return regex(regex,value); if(value.length()<20&&value.length()>0) return true; return false; } public static boolean String7int(String value) { //String regex = "^\\w{1,20}$"; //return regex(regex,value); if(value.length()<7&&value.length()>0&&isInteger(value)) return true; return false; } public static boolean String500(String value) { if(value.length()<500&&value.length()>0) return true; return false; } public static boolean String30(String value) { if(value.length()<30&&value.length()>0) return true; return false; } public static boolean checkNum(String value) { String regex = "^[0-9]{1,4}$"; return regex(regex,value); } public static boolean checkskren(String value) //收货人 { //String regex = "^\\w{1,20}$"; //return regex(regex,value); if(value.length()<25&&value.length()>0) return true; return false; } }
思路是servlet传参数回表单页面,控制错误信息的显示.
发表评论
-
好浦的东东
2010-06-18 10:42 613http://grepcode.com/file/repo1. ... -
Excel函数 单元格引用
2010-06-12 13:20 789=SUM(A2:E2) 复制会成 =SUM(A3:E3) ... -
20100601
2010-06-02 08:40 646调试环境tomcat 临时发布 发布tomcat 右键 we ... -
java生成静态页面.
2009-12-07 23:19 1186java生成静态页面. -
2009年10月11月记忆----------java网上商城
2009-12-07 23:01 913果皮网 http://www.guopi.com/ js ... -
2009年3月的记忆-------动漫商城
2009-12-07 22:56 663http://www.cosplay8.cn/ Cospl ... -
MySQL数据类型与Java的类型
2009-12-06 00:48 960mysql 数据类型java类型对照 http://mars ... -
[code] log4j写日志(可以写入数据库)
2009-12-05 12:51 15421.配置可以是properties,xml 2.输出有好多种 ... -
[code]添加,修改,删除后的页面跳转
2009-12-04 14:00 1067一,成功确认 1.去到一页面,弹出对话框后,确认跳转. 2.去 ... -
[code]表单验证_3.用框架去验证
2009-12-04 00:17 8251.用Struts验证 struts验证框架开发详解 htt ... -
[code]表单验证_1.用js在客户端验证
2009-12-03 23:29 10741.用js在客户端验证 goodsPublish.jsp页面 ... -
PO BO VO DTO POJO DAO SDO(java的server data object)的疑惑
2009-10-01 17:16 1624PO BO VO DTO POJO DAO概念及其作用(附转换 ... -
[code]9月4号面试要做的guestbook(jsp+servlet+mysql+js)
2009-09-04 15:12 970结构按足 持久层,服务层,web层去写的。 -
[code]SSH 实现注册,登陆,查看,添加,修改,删除
2009-09-03 20:28 26161 mySSH01.rar web.xml是配置了strut ... -
http应答码 500错误 20090812(jsp+servlet+access)Topjoy
2009-08-13 23:21 1718HTTP Status 500 - ----------- ... -
el表达式和jstl标签 20090812(jsp+servlet+access)Topjoy
2009-08-13 21:47 854这两样都是jsp2.0以后自带的 1. <c:if> ... -
servlet+jsp的MVC框架流程 20090812(jsp+servlet+access)Topjoy
2009-08-13 21:31 9151. servlet应答请求--> 调用业务逻辑或数据库 ... -
[code]20090812(jsp+servlet+access)Topjoy 写一网站的流程
2009-08-13 20:47 7631. 需求分析 2. 开发原型(html网页有css.js ... -
20090812(jsp+servlet+access)Topjoy遇到的问题
2009-08-13 20:30 7441. 上传文件 form要是 ENCTYPE="mu ... -
由程序语言的保留字引发的错误
2009-08-13 20:19 7131. String sql = "insert in ...
相关推荐
在`struts validate`中,验证过程通常分为两个阶段:客户端验证和服务器端验证。客户端验证通常使用JavaScript进行,可以即时反馈错误,提高用户体验;而服务器端验证则是必需的,因为它能确保数据安全,不受恶意...
3. **JavaScript文件**:实现网页交互功能,如表单验证、动态效果,扩展名为.js。 4. **图片资源**:可能包括.png、.jpg、.gif等格式的图片,用于网站的视觉设计。 5. **字体文件**:.ttf或.otf,用于自定义网页字体...
3. **后端处理**:在服务器端,接收到登录请求后,代码会检查输入的有效性,如果认证成功,则触发打印“hello”的逻辑。 4. **编程语言**:“abc”文件的扩展名没有给出,但根据描述,它可能是一段用任何常见编程...
- JavaScript:用于交互逻辑,通常与jQuery或其他库/框架(如React, Vue, Angular)结合使用,实现动态加载、表单验证、路由管理等功能。 - AJAX:用于异步数据请求,提升用户体验。 - Bootstrap或自定义CSS框架...
5. **文件处理**:在服务器端,接收到文件后,需要进行合法性检查,如文件类型、大小等。然后可能需要将文件保存到特定的服务器目录,或者存储到数据库中。 6. **异常处理**:文件上传过程中可能会遇到各种问题,如...
描述中的“source code”提示我们,这个压缩包内含有编程代码,可能包括了服务器端和客户端的应用程序。医院系统通常会涉及多个模块,如后台服务器端处理逻辑,前端用户界面展示,以及数据库接口设计。开发者可能...
在Web开发中,数据验证是不可或缺的一环,它...客户端验证可以即时反馈错误,减少不必要的服务器请求,而服务器端验证则作为最后一道防线,保证数据的正确性。在实际开发中,结合使用两者可以构建高效且健壮的Web应用。
本项目“Jsp-color-code.rar”关注的是使用Java和JSP技术生成彩色汉字验证码,这涉及到多个关键知识点,下面将详细阐述。 首先,Java验证码的实现通常基于Servlet和JSP技术。Servlet是Java服务器端编程的基础,可以...
Java脚本代码用于处理服务器端逻辑;JSP指令用于控制JSP页面的行为。 - **变量和方法的声明**: - **声明变量**:在JSP页面中,可以使用`和`%>`之间的代码来声明变量。例如,`! int num; %>`声明了一个名为num的...
验证码的核心在于生成一段随机字符串,并将其图像化,同时将该字符串保存在服务器端。当用户提交表单时,服务器会验证用户输入的字符串是否与之前生成的字符串一致。 1. **生成随机字符串**: 我们可以使用`Random...
在开发Web应用时,表单验证是不可或缺的一部分,它确保用户输入的数据符合预期的格式和规则,从而提高数据质量和安全性。Java作为后端语言,通常处理由前端提交的已验证数据,而前端验证则主要通过JavaScript来实现...
通过学习和理解这个实例,开发者可以掌握如何在JSP中处理用户输入,执行服务器端验证,以及如何根据用户操作反馈不同的页面。对于初学者来说,这是一个很好的实践项目,可以帮助他们理解JSP在实际Web开发中的应用。...
本篇文章将深入探讨如何在Java中实现动态验证码的生成与验证。 首先,验证码的核心在于它的随机性和不可预测性。在Java中,我们可以使用`java.util.Random`类来生成随机数字和字符。为了增加复杂性,可以结合使用...
2. 创建验证码:在服务器端,使用jCaptcha API生成验证码,并将其存储在会话(Session)中。 3. 显示验证码:将生成的验证码图像发送到客户端,一般通过HTTP响应流的方式。 4. 用户输入:用户在前端页面输入看到的...
2. **JSP生命周期**:JSP页面在服务器端经历翻译、编译、加载和实例化四个阶段。最终,它会被转换为一个Servlet类,由Web容器执行。 3. **动作指令**:例如`<jsp:include>`、`<jsp:forward>`和`<jsp:useBean>`,...
- 当用户提交表单时,服务器端会收到用户输入的验证码,通过比较用户输入的验证码与之前保存在session中的验证码来验证其有效性。如果一致,表示验证通过;如果不一致,提示用户重新输入。 5. **使用Kaptcha的其他...
2. **表单生成**:表单生成通常涉及编程技术,例如HTML、JavaScript、CSS以及服务器端语言(如ASP.NET、PHP、Java等)。在这个例子中,文件名如show.aspx、save.aspx和data.aspx可能对应着显示、保存和处理数据的...
通过AJAX可以实现在不刷新页面的情况下与服务器进行交互,从而完成各种表单验证操作。这种方式不仅能够提升用户体验,还能减轻服务器端的压力。 ### 二、AJAX 验证实现原理 AJAX验证主要通过以下步骤实现: 1. **...
5. 验证输入:在客户端提交表单时,验证输入的验证码是否与服务器端保存的一致。 三、Kaptcha的高级特性 1. 文本配置:Kaptcha支持自定义字符集,可以控制生成的验证码包含哪些字符,如数字、字母或特殊符号。 2. ...