JSP的注册验证功能的实现
来源:互联网 发布:天涯明月刀捏脸数据 编辑:程序博客网 时间:2024/05/16 17:29
这里主要用到4个程序代码:
下面是演示代码:
Register.java
- package wml.demo;
- import java.util.HashMap ;
- import java.util.Map ;
- public class Register {
- private String name ;
- private String age ; // 这种接收参数的时候如果是用户自己输入的情况下,就是使用String
- private String email ;
- private Map<String,String> errors = null ;
- public Register(){
- this.name = "" ;
- this.age = "" ;
- this.email = "" ;
- this.errors = new HashMap<String,String>() ;
- }
- public boolean isValidate(){
- boolean flag = true ;
- if(!this.name.matches("\\w{6,15}")){
- flag = false ;
- this.name = "" ; // 清空原本的name内容
- this.errors.put("errname","用户名是6~15位的字母或数字。") ;
- }
- if(!this.email.matches("\\w+@\\w+\\.\\w+\\.?\\w*")){
- flag = false ;
- this.email = "" ; // 清空原本的name内容
- this.errors.put("erremail","输入的email地址不合法。") ;
- }
- if(!this.age.matches("\\d+")){
- flag = false ;
- this.age = "" ; // 清空原本的name内容
- this.errors.put("errage","年龄只能是数字。") ;
- }
- return flag ;
- }
- public String getErrorMsg(String key){
- String value = this.errors.get(key) ;
- return value==null?"":value ;
- }
- public void setName(String name){
- this.name = name ;
- }
- public void setAge(String age){
- this.age = age ;
- }
- public void setEmail(String email){
- this.email = email ;
- }
- public String getName(){
- return this.name ;
- }
- public String getAge(){
- return this.age ;
- }
- public String getEmail(){
- return this.email ;
- }
- }
index.jsp
- <%@ page contentType="text/html" pageEncoding="GBK"%>
- <html>
- <head><title>这是标题</title></head>
- <%
- request.setCharacterEncoding("GBK") ;
- %>
- <jsp:useBean id="reg" scope="request" class="wml.demo.Register"/>
- <body>
- <form action="check.jsp" method="post">
- <span style="white-space:pre"> </span><!--其中name项一定要与javaBean中的名字匹配,不然getProperty不会得到相关信息,setProperty同理-->
- 用户名:<input type="text" name="name" value="<jsp:getProperty name="reg" property="name"/>"/> <%=reg.getErrorMsg("errname")%><br><!--其中的getProperty同getErrorMsg一样,都是在返回错误页的时候使用的,注意理解。-->
- 年 龄:<input type="text" name="age" value="<jsp:getProperty name="reg" property="age"/>"/> <%=reg.getErrorMsg("errage")%><br>
- E-MAIL:<input type="text" name="email" value="<jsp:getProperty name="reg" property="email"/>"/> <%=reg.getErrorMsg("erremail")%><br>
- <input type="submit" value="注册">
- <input type="reset" value="重置">
- </form>
- </body>
- </html>
check.jsp
- <%@ page contentType="text/html" pageEncoding="GBK"%>
- <html>
- <head><title>这是标题</title></head>
- <%
- request.setCharacterEncoding("GBK") ;
- %>
- <jsp:useBean id="reg" scope="request" class="wml.demo.Register"/>
- <jsp:setProperty name="reg" property="*"/>
- <body>
- <%
- if(reg.isValidate()){
- %>
- <jsp:forward page="success.jsp"/>
- <%
- } else {
- %>
- <jsp:forward page="index.jsp"/>
- <%
- }
- %>
- </body>
- </html>
success.jsp
- <%@ page contentType="text/html" pageEncoding="GBK"%>
- <html>
- <head><title>这是标题</title></head>
- <%
- request.setCharacterEncoding("GBK") ;
- %>
- <jsp:useBean id="reg" scope="request" class="wml.demo.Register"/>
- <body>
- 用户名:<jsp:getProperty name="reg" property="name"/><br>
- 年 龄:<jsp:getProperty name="reg" property="age"/><br>
- E-MAIL:<jsp:getProperty name="reg" property="email"/><br>
- </body>
- </html>
显示效果:
当输入的用户名不合法时,直接在index中显示错误信息,显示下图效果:
当正确输入时,跳转到success.jsp页面:
起初该句:
<input type="text" name="name" value="<jsp:getProperty name="reg" property="name"/>"/> <%=reg.getErrorMsg("errname")%>
中value="<jsp:getProperty name="reg" property="name"/>"不理解。因为jsp:getProperty标签相当于javabean中的getter方法。而value是需要输入的,怎么能用jsp:getProperty为其赋值呢?
分析:搞清楚程序的执行顺序。
先执行index.jsp文件,该文件中创建了一个reg对象。有构造函数知reg类中name,age,email,errors都为空,所以value="<jsp:getProperty name="reg" property="name"/>此时为空字串,所以表单显示时是空白的。当向表单中输入内容后,比如:name表单中输入:Tom,年龄输入:25,email输入:aaaa。当按下提交时,转到check.jsp进行处理,首先执行:
<jsp:setProperty name="reg" property="*"/> ,即使用表单中的内容为reg类赋值。此时reg类中,name=Tom,age=25,email=aaaa.
然后执行语句:if(reg.isValidate()),调用isValidate()函数,因为tom和email不符合正则表单式,所以name和email重新赋值为空,即:
this.name = "" ; this.email = "" ;而年龄附和正则表达式,则age=25不变,且函数返回false.故跳转到:index.jsp,此时由于name="",age=25,email="",所以<jsp:getProperty name="reg" property="name"/>"为空,即name表单为空的,email表单同理为空。而
<jsp:getProperty name="reg" property="age"/>"为25,故age表单中显示25.
- JSP的注册验证功能的实现
- JSP注册验证功能的实现
- jsp注册验证码的实现
- jsp注册验证码的实现
- JSP MVC2 实现用户注册的功能
- JSP登录验证功能的实现
- JSP的登陆验证功能实现
- 基于JSP的AJAX的实现(用户注册验证)
- 验证码的获取和注册功能的代码实现
- 登录注册功能的实现,核心的验证代码
- ECshop中注册时的邮箱验证功能实现代码
- 利用JQuery实现注册页面的验证功能
- PHP-注册时邮箱验证功能的实现
- ThinkPHP5开发(二)实现带后台验证的注册功能
- php实现Ajax带有验证码的登陆注册功能
- Django框架下用户注册邮箱验证功能的实现
- java 如何实现登陆和注册的验证码功能
- 用jsp+javabean实现用户注册和查看的功能
- 庆功宴的一天有感
- latch free
- 黑马程序员高级学习视频IO输入输出流 将一个指定目录下的java文件的绝对路径,存储到一个文本文件中
- oracle 修改字段类型的方法
- 解决远程连接mysql错误1130代码的方法
- JSP的注册验证功能的实现
- 动态链接库入门宝典
- Python标准库 正则表达式 (re包)
- ubuntu+win7 网络问题汇总
- jconsole 远程监控 jboss
- 根据电话号码查询联系人id,姓名,短信日期和短信简略内容
- [C++ zip] 如何压缩一个文件夹?
- 超实用的JavaScript技巧及最佳实践(一)
- ubuntu的源列表