创建一个BaseServlet来保存大量重复的代码(dopost,doget):
public class BaseServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String methodName = request.getParameter("method");
try {
Method method = this.getClass().getMethod(methodName,HttpServletRequest.class,HttpServletResponse.class);
String url = (String) method.invoke(this,request,response);
if(url!=null&&url.trim().length()!=0){
if (url.startsWith("redirect:")){
response.sendRedirect(request.getContextPath()+url.split(":")[1]);
}else {
request.getRequestDispatcher(url).forward(request, response);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
然后就是实现类(以注册为例):
@WebServlet(name = "UserServlet",value = "/userservlet")
public class UserServlet extends BaseServlet {
public String register(HttpServletRequest request, HttpServletResponse response){
try {
User user =new User();
String repassword = request.getParameter("repassword");
BeanUtils.populate(user,request.getParameterMap());
if (StringUtils.isEmpty(user.getUsername())){
request.setAttribute("registerMsg", "用户名不能为空");
return "/register.jsp";
}
if (StringUtils.isEmpty(user.getPassword())){
request.setAttribute("registerMsg", "密码不能为空");
return "/register.jsp";
}
if (!user.getPassword().equals(repassword)){
request.setAttribute("registerMsg", "两次密码不一致");
return "/register.jsp";
}
if (StringUtils.isEmpty(user.getEmail())){
request.setAttribute("registerMsg", "邮箱不能为空");
return "/register.jsp";
}
UserService userService = new UserServiceImpl();
user.setFlag(0);
user.setRole(1);
user.setCode(RandomUtils.createActive());
userService.register(user);
System.out.println("用户注册");
return "redirect:/registerSuccess.jsp";
} catch (Exception e) {
request.setAttribute("registerMsg","注册失败");
e.printStackTrace();
}
return "/register.jsp";
}
public String checkUserName(HttpServletRequest request,HttpServletResponse response) throws Exception {
String username = request.getParameter("username");
if (username==null||username.trim().length()==0){
return null;
}
UserService userService = new UserServiceImpl();
User user = userService.checkUserName(username);
if (user!=null){
response.getWriter().write("1");
}else {
response.getWriter().write("0");
}
return null;
}
}
这个方法减少了代码的冗余,提升代码速度和整洁度,方便管理。