JavaWeb第七章JavaBean实例操作注册验证

完成一个简单注册验证程序,验证用户名,年龄,邮箱。如果用户输入正确则可以进行输入内容的显示,当不正确时,错误信息进行提示,正确信息保留。需要三个页面:

index.jsp 和sucess.jsp和check.jsp。

首先是index.jsp

<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>index</title>
<%request.setCharacterEncoding("GBK"); %>
</head>
<body>
<jsp:useBean id="reg" scope="request" class="demo20221018.Register"></jsp:useBean>

<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"/>"><%=reg.getErrorMsg("errage") %><br>
邮箱:<input type="text" name="email" value="<jsp:getProperty name="reg" property="email"/>"><%=reg.getErrorMsg("erremail") %><br>
<input type="submit" value="注册"><br>
<input type="reset" value="重置"></form>
</body>
</html>

接下来是Register.java

package demo20221018;
import java.util.HashMap;
import java.util.Map;

public class Register {
private String name;
private String age;
private String email;
Map<String,String> errors=null;

public Register()
{
	name="";
	email="";
	age="";
	errors=new HashMap<String,String>();
	}

public boolean isValidate()
{
	boolean flag=true;
	if(!name.matches("\\w{6,15}")) {
		flag=false;
		this.name="";
		errors.put("errname", "用户名输入的是6-15位的数字");
	}
	if(!email.matches("\\w+@\\w+\\.\\w+\\.?\\w")){
		flag=false;
		this.email="";
		errors.put("erremail", "邮箱输入不正确");
	}
	if(!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;
}

}

check.jsp页面

<%@ page language="java" contentType="text/html"
    pageEncoding="GBK"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<%request.setCharacterEncoding("GBK"); %>
<jsp:useBean id="reg" scope="request" class="demo20221018.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 language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<%request.setCharacterEncoding("GBK"); %>
<jsp:useBean id="reg" scope="request" class="demo20221018.Register"/>
</head>
<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>

必须注意JavaBean里面scope的范围:

  1. page:保存在一页中,跳转后无效
  2. request:一个JavaBean对象可以保存在一次服务器跳转的范围中
  3. session:在一个用户的操作范围中保存,重新开浏览器才会声明新的
  4. application:在整个服务器上保存,服务器关闭后才会消失

 本人就是因为scope范围写错导致一直运行不出来,还要注意验证的正则表达式是否正确,编码方式是否正确(可能会导致乱码)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值