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处理不成功,不是因为用户已存在的原因,则转到提示友好信息界面

//注册成功..

}代码如下:
request.getRequestDispatcher("../WEB-INF/jsp/register.jsp").forward(request, response);就是这句代码,第一句能够执行,第二句无法执行。

解决方案 »

  1.   

    难道request只能跳一次的原因么?
      

  2.   

    代码是从register.jps页面过来。
      

  3.   


    request.getRequestDispatcher("http://www.baidu.com").forward(request, response);我刚改成这样,结果就报错了。因为我少打了
    错误如下:
    type Status reportmessage /userloginApp/servlet/http:/www.baidu.comdescription The requested resource is not available.