编写注册验证文件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>
简单的新闻发布系统--注册
最新推荐文章于 2024-08-11 20:00:32 发布