public String perform(HttpServletRequest request) {
		List<String> errors = new ArrayList<String>();
		request.setAttribute("errors", errors);

		try {
			LoginForm form = formBeanFactory.create(request);
			request.setAttribute("form", form);

			// If no params were passed, return with no errors so that the form
			// will be
			// presented (we assume for the first time).
			if (!form.isPresent()) {
				return "c_login.jsp";
			}

			// Any validation errors?
			errors.addAll(form.getValidationErrors());
			if (errors.size() != 0) {
				return "c_login.jsp";
			}

			Transaction.begin();
			// Look up the user
			CustomerBean customer = customerDAO.login(form.getUserName(),
					form.getPassword());

			if (customer == null) {
				errors.add("User Name and Password is not matched!!");
				Transaction.commit();
				return "c_login.jsp";
			}

			// Check the password
			// if (!customer.checkPassword(form.getPassword())) {
			// errors.add("Incorrect password");
			// return "c_login.jsp";
			// }

			// Attach (this copy of) the user bean to the session
			HttpSession session = request.getSession();
			session.setMaxInactiveInterval(600);
			session.setAttribute("customer", customer);
			Transaction.commit();
			return "c_viewAccount.do";
		} catch (FormBeanException e) {
			errors.add(e.getMessage());
			return "c_login.jsp";
		} catch (RollbackException e) {
			return "c_login.jsp";
		} catch (Exception e) {
			errors.add(e.getMessage());
			return "c_login.jsp";
		} finally {
			if (Transaction.isActive())
				Transaction.rollback();
		}
	}