net.incrementalism.tooter.SignUpServlet.java Source code

Java tutorial

Introduction

Here is the source code for net.incrementalism.tooter.SignUpServlet.java

Source

/*
 * Copyright 2010 Tim Moore
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package net.incrementalism.tooter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

import static net.incrementalism.tooter.UserSession.setCurrentUser;
import static org.apache.commons.lang.StringUtils.isBlank;

public class SignUpServlet extends BaseTooterServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        if (isBlank(request.getParameter("userName"))) {
            request.setAttribute("error", "'User Name' must not be empty.");
        } else if (isBlank(request.getParameter("email"))) {
            request.setAttribute("error", "'Email Address' must not be empty.");
        } else if (isBlank(request.getParameter("password"))) {
            request.setAttribute("error", "'Password' must not be empty.");
        } else if (isBlank(request.getParameter("passwordConfirm"))) {
            request.setAttribute("error", "'Confirm Password' must not be empty.");
        } else if (!request.getParameter("password").equals(request.getParameter("passwordConfirm"))) {
            request.setAttribute("error", "'Password' and 'Confirm Password' did not match.");
        } else {
            try {
                setCurrentUser(request, addUser(User.builder().userName(request.getParameter("userName"))
                        .email(request.getParameter("email")).password(request.getParameter("password")).build()));
                response.sendRedirect("/profile");
                return;
            } catch (DuplicateUserException e) {
                request.setAttribute("error", "User Name '" + e.getUserName() + "' is already taken.");
            }
        }
        request.getRequestDispatcher("/index.jsp").include(request, response);
    }
}