日期:2014-05-18 浏览次数:20806 次
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
//1,获取数据,进行合法性校验
RegisterForm formBean = WebUtils.request2Bean(request, RegisterForm.class);
//2,校验失败,返回注册页面
boolean b = formBean.validate();
if(!b)
{
request.setAttribute("form", formBean);
//这下面是第一句,我在使用的时候,能够
//正常的返回。
request.getRequestDispatcher("../WEB-INF/jsp/register.jsp").forward(request, response);
return;
}
//3,校验成功,提交给service处理
//先通过生成一个用户对象,保存相关的信息..
User user = new User();
System.out.println("用户生成...");
System.out.println(formBean.getBirthday());
WebUtils.copyBean(formBean, user);
user.setId(WebUtils.generateID());
user.setPassword(formBean.getPassword1());
System.out.println("用户属性设置完毕........");
BusinessService service = new BusinessServiceImpl();
try
{
System.out.println("开始注册,接下来将会验证用户是否已存在"+user.getUsername());
service.register(user);
System.out.println("注册成功.");
}
catch(UserExistException e)
{
System.out.println("我知道了,用户已经存在.."+this.getClass());
//4,如果service处理不成功,则跳回到注册页面,显示用户已存在.
formBean.getErrors().put("username", "用户已存在");
System.out.println("设置数据成功...");
// request.setAttribute("message", "用户已存在");
//第二句话在此,这行代码好像没有执行一样,控制台会打印下面的消息。。
request.getRequestDispatcher("../WEB-INF/jsp/register.jsp").forward(request, response);
System.out.println(this.getClass()+"转向其他页面...");
return;
}
catch(Exception e)
{
e.printStackTrace();
request.setAttribute("message", "不好意思,服务器出现未知故障");
}
//不同的异常需要分情况处理.
//如果service处理不成功,不是因为用户已存在的原因,则转到提示友好信息界面
//注册成功..
}