⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 editprofileservlet.java

📁 dspace 用j2ee架构的一个数字图书馆.开源程序
💻 JAVA
字号:
/* * EditProfileServlet.java * * Version: $Revision: 1.5 $ * * Date: $Date: 2005/04/20 14:22:36 $ * * Copyright (c) 2002-2005, Hewlett-Packard Company and Massachusetts * Institute of Technology.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * - Neither the name of the Hewlett-Packard Company nor the name of the * Massachusetts Institute of Technology nor the names of their * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */package org.dspace.app.webui.servlet;import java.io.IOException;import java.sql.SQLException;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.log4j.Logger;import org.dspace.app.webui.util.JSPManager;import org.dspace.authorize.AuthorizeException;import org.dspace.core.Context;import org.dspace.core.LogManager;import org.dspace.eperson.EPerson;/** * Servlet for handling editing user profiles *  * @author Robert Tansley * @version $Revision: 1.5 $ */public class EditProfileServlet extends DSpaceServlet{    /** Logger */    private static Logger log = Logger.getLogger(EditProfileServlet.class);    protected void doDSGet(Context context, HttpServletRequest request,            HttpServletResponse response) throws ServletException, IOException,            SQLException, AuthorizeException    {        // A GET displays the edit profile form. We assume the authentication        // filter means we have a user.        log.info(LogManager.getHeader(context, "view_profile", ""));        request.setAttribute("eperson", context.getCurrentUser());        JSPManager.showJSP(request, response, "/register/edit-profile.jsp");    }    protected void doDSPost(Context context, HttpServletRequest request,            HttpServletResponse response) throws ServletException, IOException,            SQLException, AuthorizeException    {        // Get the user - authentication should have happened        EPerson eperson = context.getCurrentUser();        // Find out if they're trying to set a new password        boolean settingPassword = false;        if ((eperson.getRequireCertificate() == false)                && (request.getParameter("password") != null)                && !request.getParameter("password").equals(""))        {            settingPassword = true;        }        // Set the user profile info        boolean ok = updateUserProfile(eperson, request);        if (!ok)        {            request.setAttribute("missing.fields", new Boolean(true));        }        String passwordProblem = null;        if (ok && settingPassword)        {            // They want to set a new password.            ok = confirmAndSetPassword(eperson, request);            if (!ok)            {                request.setAttribute("password.problem", new Boolean(true));            }        }        if (ok)        {            // Update the DB            log.info(LogManager.getHeader(context, "edit_profile",                    "password_changed=" + settingPassword));            eperson.update();            // Show confirmation            request.setAttribute("password.updated", new Boolean(                    settingPassword));            JSPManager.showJSP(request, response,                    "/register/profile-updated.jsp");            context.complete();        }        else        {            log.info(LogManager.getHeader(context, "view_profile",                    "problem=true"));            request.setAttribute("eperson", eperson);            JSPManager.showJSP(request, response, "/register/edit-profile.jsp");        }    }    /**     * Update a user's profile information with the information in the given     * request. This assumes that authentication has occurred. This method     * doesn't write the changes to the database (i.e. doesn't call update.)     *      * @param eperson     *            the e-person     * @param request     *            the request to get values from     *      * @return true if the user supplied all the required information, false if     *         they left something out.     */    public static boolean updateUserProfile(EPerson eperson,            HttpServletRequest request)    {        // Get the parameters from the form        String lastName = request.getParameter("last_name");        String firstName = request.getParameter("first_name");        String phone = request.getParameter("phone");        // Update the eperson        eperson.setFirstName(firstName);        eperson.setLastName(lastName);        eperson.setMetadata("phone", phone);        // Check all required fields are there        if ((lastName == null) || lastName.equals("") || (firstName == null)                || firstName.equals(""))        {            return false;        }        else        {            return true;        }    }    /**     * Set an eperson's password, if the passwords they typed match and are     * acceptible. If all goes well and the password is set, null is returned.     * Otherwise the problem is returned as a String.     *      * @param eperson     *            the eperson to set the new password for     * @param request     *            the request containing the new password     *      * @return true if everything went OK, or false     */    public static boolean confirmAndSetPassword(EPerson eperson,            HttpServletRequest request)    {        // Get the passwords        String password = request.getParameter("password");        String passwordConfirm = request.getParameter("password_confirm");        // Check it's there and long enough        if ((password == null) || (password.length() < 6))        {            return false;        }        // Check the two passwords entered match        if (!password.equals(passwordConfirm))        {            return false;        }        // Everything OK so far, change the password        eperson.setPassword(password);        return true;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -