简单的新闻发布系统--注册

编写注册验证文件reg.js,关键代码:
	//验证用户名
	if(f1.userid.value==""){
		alert("用户名不能为空");
		return;
	}
	//验证密码
	if(f1.password.value.length<6 || f1.password.value.length>18){
		alert("密码的长度必须在6-18位");
		return;
	}
	//验证两次密码是否相同
	if(f1.password.value!=f1.password2.value){
		alert("两次输入的密码必须相同");
		return;
	}
	//验证成功后跳转
	f1.submit();
编写注册页面register.jsp,并链接注册验证文件。
编写失败页面error.jsp,关键代码:
<h1>操作失败</h1>
请点击<input type="button" value="返回" onclick="javascprit:history.back()">
3、注册功能后台类的创建
编写业务逻辑处理类RegisterBean,关键代码如下:
public boolean registerUser(User user){
		//访问数据库
		DbHandle db =new DbHandle();
		String sql="insert into user(username,password,sex,profession,favourite,note) " +
				"values('"+user.getUsername()+"','"+user.getPassword()+"','"+user.getSex()+"'," +
						"'"+user.getProfession()+"','"+user.getFavourite()+"','"+user.getNote()+"')";
		int ret=db.executeUpdate(sql);
		//关闭数据库
		db.close();
		//注册成功返回true,注册失败返回false
		if(ret>0){
			return true;
		}
		else{
			return false;
		}
	}	
编写流程控制类RegisterServlet,应该注意三点:第一,获取注册页面传来的数据,根据需求确定页面的有效性验证编写服务器端验证代码,关键代码如下:
//获取用户注册信息
String username = request.getParameter("username");
String password = request.getParameter("password");
String repassword = request.getParameter("repassword");
String sex=request.getParameter("sex");
String profession=request.getParameter("profession");
String[] temp=request.getParameterValues("favourite");
String favourite = "";
//处理爱好,将存放在数组中的爱好信息变成以逗号分开的字符串
for(int i=0;i<temp.length;i++){
	if(i==0){
		favourite = temp[0];
	}else{
		favourite = "," + temp[i];
	}
}
String note=request.getParameter("note");

//服务器端验证输入的数据格式是否正确
List<String> errorList = new ArrayList<String>();
if(username ==  null || username.equals("")){
	errorList.add("用户名不能为空!");
}

if(password == null || password.length()<6 || password.length()>12){
	errorList.add("密码必须在6到12位之间!");
}
if(repassword == null || repassword.length()<6 || repassword.length()>12){
	errorList.add("确认密码必须在6到12位之间!");
}

if(password != null && repassword != null && !password.equals(repassword)){
	errorList.add("密码和确认密码必须相等!");
}
		
if(!errorList.isEmpty()){
	request.getRequestDispatcher("error.jsp").forward(request, response);
}
第二,如果服务器端代码验证不通过,则在错误页面error.jsp中输出错误信息,关键代码如下:
<div>
	<% 
		List<String> errorList = (List<String>)request.getAttribute("errorList");
		%>
			<font color="red">你的输入有以下错误,请重新输入:</font><br>
		<%
		for(String error : errorList){
			%>
			<font color="red"><%=error%></font><br>
			<%
		}
	%>
</div>
第三,如果服务器端代码验证通过,则调用业务处理类RegisterBean进行注册,关键代码如下: 
//调用业务处理类RegisterBean进行注册
RegisterBean registerBean = new RegisterBean();
boolean flag = registerBean.registerUser(user);
if(flag){
	//注册成功返回登录页面
	request.getRequestDispatcher("login/login.jsp").forward(request,
     response);
}else{
	//注册失败饭错误页面
	request.getRequestDispatcher("error.jsp").forward(request, response);
}
引入数据库工具类DbHandle。
修改web.xml文件,增加注册功能的servlet配置,关键代码:
   <servlet>
    <description></description>
    <display-name>RegisterServlet</display-name>
    <servlet-name>RegisterServlet</servlet-name>
    <servlet-class>com.servlet.RegisterServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>RegisterServlet</servlet-name>
    <url-pattern>/RegisterServlet</url-pattern>
  </servlet-mapping>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值