JavaBean使用实例——注册验证

来源:互联网 发布:linux apt-get卸载 编辑:程序博客网 时间:2024/05/24 05:12

首先写了一个Register作为bean

package prac_7;import java.util.HashMap;import java.util.Map;public class Register {private String name;private String age;private String email;private Map<String , String> errors=null;public Register(){this.name="";this.email="";this.age="";this.errors=new HashMap<String , String>();}public boolean isValidate(){boolean flag=true;if (!this.name.matches("\\w{6,15}")){flag=false;this.name="";errors.put("errname","用户名是6~15位的字母或者数字");}if (!this.email.matches("\\w+@\\w+\\.\\w+\\.?\\w*")){flag=false;this.email="";errors.put("erremail", "输入的email地址不合法。");}if (!this.age.matches("\\d+")){flag=false;this.age="";errors.put("errage","年龄只能是数字。");}return flag;}public String getErrorMsg(String key){String value = this.errors.get(key);return value==null?"":value;}public String getName(){return name;}public void setName(String name){this.name=name;}public String getAge(){return age;}public void setAge(String age){this.age=age;}public String getEmail(){return email;}public void setEmail(String email){this.email=email;}}

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">-->  </head>  <jsp:useBean id="reg" scope="request" class="prac_7.Register"/>  <body>    This is my JSP page. <br>    <form action ="check.jsp" method="post">         用户名:<input type="text" name="name" value="<jsp:getProperty name="reg" property="name"/>">    <%=reg.getErrorMsg("errname") %><br>              年  龄: <input type="text" name="age" value="<jsp:getProperty name="reg" property="age"/>">      E-Mail: <input type ="text" name="email" value="<jsp:getProperty name="reg" property="email"/>">    <input type = "submit" value="注册"> <input type="reset" value="重置">    </form>  </body></html>

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP 'check.jsp' starting page</title>    <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">-->  </head>  <jsp:useBean id="reg" scope="request" class="prac_7.Register"/>  <jsp:setProperty name="reg" property="*"/>  <body>    This is my JSP check page. <br>    <%      if (reg.isValidate()){    %>      <jsp:forward page="success.jsp"/>    <%        }else{    %>    <jsp:forward page="index.jsp"/>    <%     }     %>     </body></html>


要注意javaBean的几个用法,其比较方便的是可以通过 getProperty很方便地获取参数,相比于之前的 用request.getParameter更灵活

JavaBean一开始所有参数都是空的,我一开始还不知道哪里有赋值操作,check里面有一个 setProperty表示自动赋值,这样就进行了赋值,之后再取都是可以的,当然范围scope是 request的,只支持页面跳转有效


用jsp:forward进行跳转,地址栏是不会变的。这个要注意,所以总是看到了check.jsp,实际已经跳转到index.jsp或者success.jsp了

0 0
原创粉丝点击