业务逻辑层和数据访问层的单元测试都没有错,都可以写入\WebRoot\WEB-INF\classes下的user.xml里。
但是在WEB层里,成功注册却没在user.xml里发现,而且,再次注册同样的账号时,显示该账号已注册。本人很菜,请高手别骂的太尽,谢谢。下面附源代码:package cn.done.controller;import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import cn.bone.exception.UserExistException;
import cn.bone.web.formbean.RegisterForm;
import cn.done.domain.User;
import cn.done.service.impl.BusinessServiceImpl;
import cn.done.utils.WebUtils;public class RegisterServlet extends HttpServlet { //处理注册请求
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

request.setCharacterEncoding("UTF-8");

//1.对提交表单的字段进行合法性校验(把表单数据封闭到formbean)
RegisterForm form = WebUtils.request2Bean(request, RegisterForm.class); 
boolean b = form.validate();


//2.如果校验失败,跳回到表单页面,回显校验失败信息
if(!b){
request.setAttribute("form", form);
request.getRequestDispatcher("/WEB-INF/jsp/register.jsp").forward(request, response);
return;
}

//3.如果校验成功,则调用service处理注册请求
User user = new User();
WebUtils.copyBean(form, user);
user.setId(WebUtils.generateID());
BusinessServiceImpl service = new BusinessServiceImpl();
try {
service.register(user);
//6.如果serivce处理成功,跳转到网站的全局消息显示页面,为用户显示注册的消息
request.setAttribute("message", "恭喜你,注册成功");
request.getRequestDispatcher("/message.jsp").forward(request, response);
} catch (UserExistException e) {
//4.如果serivce处理不成功,并且不成功的原因,是因为注册用户已存在,则跳回到注册页面,显示注册用户已存在的消息
    form.getErrors().put("username", "注册的用户名已存在!");
    request.setAttribute("form", form);
    
//request.setAttribute("message", "注册的用户名已存在!");

request.getRequestDispatcher("/WEB-INF/jsp/register.jsp").forward(request, response);
return;
}catch(Exception e){
//5.如果serivce处理不成功,并且不的原因是其它问题的话,跳转到网站的全局消息显示页面,为用户显示友好的消息
e.printStackTrace();
//request.setAttribute("message", "注服务器出现未知错误!");
request.getRequestDispatcher("message.jsp").forward(request, response);
return;
}
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { doGet (request,response);
}}