小项目第一天完成了注册功能

来源:互联网 发布:sql server 2012 下载 编辑:程序博客网 时间:2024/05/17 06:08

主要的servlet的代码:

private UserService userService=new UserService();//依赖的对象
public String active(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
    response.getWriter().println("注册成功!!!!!");
return null;

}
public String regist(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {


//封装表单的数据
User form =CommonUtils.toBean(request.getParameterMap(), User.class);//把数据封装到form对象中
form.setUid(CommonUtils.uuid());//补全id的值
form.setCode(CommonUtils.uuid()+CommonUtils.uuid());//保存32位的激活码到用户对象中

//创建一个Map,用来封装错误的信息,其中key为表的字段的名称,值为错误的信息
Map<String,String> errors=new HashMap<String, String>();
//校验用户名是否符合要求
String username=form.getUsername();
if(username==null||username.trim().isEmpty()){
errors.put("username", "用户名不能为空!");
}else if(username.length()<3||username.length()>10){
errors.put("username", "用户名在3-10之间!");
}
//校验密码是否符合要求
String password=form.getPassword();//校验用户名是否符合要求
if(password==null||password.trim().isEmpty()){
errors.put("password", "密码不能为空!");
}else if(password.length()<3||password.length()>10){
errors.put("password", "密码在3-10之间!");
}
//校验emai是否符合要求
String email=form.getEmail();//校验用户名是否符合要求
if(email==null||email.trim().isEmpty()){
errors.put("email", "邮箱不能为空!");
}else if(email.matches("\\w+@\\w\\.\\w")){//正则表表达式
errors.put("email", "Email的格式错误!");
}
//进行验证码验证
String image=(String) request.getSession().getAttribute("picture");//得到验证码的值

String verify=request.getParameter("sure");//得到用户在文本框中输入的值
System.out.println(verify);
if(!verify.equalsIgnoreCase(image)){
errors.put("iamge", "你输入的验证码有误!");
}
//判断是否存在错误的信息
if(errors.size()>0){
request.setAttribute("errors", errors);//保存错误信息到request域中
request.setAttribute("form", form);//保存当前的user对象到request域中
return "f:/jsps/user/regist.jsp";//转发到regist页面中
}

try {
userService.regist(form);//将传入的用户信息进行注册

//验证邮箱
Properties props=new Properties();
props.load(this.getClass().getClassLoader().getResourceAsStream("email.properties"));//拿到当前的流对象
String frString=props.getProperty("from");//得到发信人
String to=request.getParameter("email");//得到收信人
String content=props.getProperty("content");//得到文本的题目
String passwords=props.getProperty("password");//得到
String subject=props.getProperty("subject");//得到正文部分
content=MessageFormat.format(content, form.getCode());//设置激活码
try {
Mail.sendMail(frString, to, subject, content, passwords);
} catch (MessagingException e) {
throw new RuntimeException("发送邮件失败");
}//发送邮件

} catch (userException e) {
request.setAttribute("form", form);//保存form信息
request.setAttribute("msg", e.getMessage());//保存错误信息
return "f:/jsps/user/regist.jsp";//转发到regist页面中
}
request.setAttribute("msg", "恭喜<( ̄︶ ̄)↗,请立即到邮箱激活!");//保存成功信息
return "f:/jsps/msg.jsp";
}

jsp的代码:

    <script type="text/javascript">
  function fun(){
 var id=document.getElementById("love");
 id.src="${pageContext.request.contextPath}/verifyServlet?"+new Date().getTime();
  }
//禁止用户输入空格
  function fn(obj)
  {
      obj.value=obj.value.replace(/^ +| +$/g,'');
  }
  </script>
  <body>
  <h1>注册</h1>
  <p style="color: red; font-weight: 900">${msg }</p>
<form action="<c:url value='/UserServlet'/>" method="post">
<input type="hidden" name="method" value="regist"/>
用户名:<input type="text" name="username" value="${form.username }" onkeyup="fn(this)"/><span style="color: red; font-weight: 900">${errors.username }</span><br/>
密 码:<input type="password" name="password" value="${form.password }" onkeyup="fn(this)"/><span style="color: red; font-weight: 900">${errors.password }</span><br/>
邮 箱:<input type="text" name="email" value="${form.email }" onkeyup="fn(this)"/><span style="color: red; font-weight: 900">${errors.email }</span><br/>
验证码:<input type="text" name="sure" size="3" onkeyup="fn(this)"/><img id="love" src="${pageContext.request.contextPath }/verifyServlet" /><a href="javascript:fun();">看不起换一张</a><span style="color: red; font-weight: 900">${errors.iamge }</span><br/>
<input type="submit" value="注册"/>
</form>
  </body>

0 0
原创粉丝点击