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

📄 usermatchaction.java

📁 conference java project
💻 JAVA
字号:
package cn.edu.jlu.csw.team5.action;

import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.*;
import java.sql.SQLException;
import cn.edu.jlu.csw.team5.entity.UserInfoForm;
import cn.edu.jlu.csw.team5.bussness.UserInfoBo;

public class UserMatchAction extends Action {

    public ActionForward execute(ActionMapping actionMapping,
                                 ActionForm actionForm,
                                 HttpServletRequest servletRequest,
                                 HttpServletResponse servletResponse) {

        UserInfoForm userInfoForm = (UserInfoForm) actionForm;

        //从web层获得用户名和口令
        String username = userInfoForm.getUsername().trim();
        String password = userInfoForm.getPassword().trim();

        //声明错误集对象
        ActionErrors errors = new ActionErrors();

        //声明数据源和连接对象
        DataSource dataSource;
        Connection cnn = null;

        //校验输入
        if (username.equals("")) {
            ActionError error = new ActionError("error.missing.username");
            errors.add(ActionErrors.GLOBAL_ERROR, error);
        }
        if (password.equals("")) {
            ActionError error = new ActionError("error.missing.password");
            errors.add(ActionErrors.GLOBAL_ERROR, error);
        }

        //调用业务逻辑
        if (errors.size() == 0) {
            String validated = "";
            try {

                //取得数据库连接
                dataSource = getDataSource(servletRequest);
                cnn = dataSource.getConnection();
                UserInfoBo userInfoBo = new UserInfoBo(cnn);
                validated = userInfoBo.validatePwd(username, password);
                if (validated.equals("user")) {
                    //一切正常就保存用户信息并转向成功的页面
                    HttpSession session = servletRequest.getSession();
                    session.setAttribute("userInfoForm", actionForm);
                    return actionMapping.findForward("user");
                }
                if (validated.equals("admin")) {
                    //一切正常就保存用户信息并转向成功的页面
                    HttpSession session = servletRequest.getSession();
                    session.setAttribute("userInfoForm", actionForm);
                    return actionMapping.findForward("admin");
                }
                if (validated.equals("error.password.invalid")) {
                    //如果用户名与口令不匹配则报此错
                    ActionError error = new ActionError(
                            "error.password.invalid");
                    errors.add(ActionErrors.GLOBAL_ERROR, error);
                }
                if (validated.equals("error.noMatch")) {
                    //一切正常就保存用户信息并转向成功的页面
                    ActionError error = new ActionError("error.noMatch");
                    errors.add(ActionErrors.GLOBAL_ERROR, error);
                }

            }

            catch (Throwable e) {
                //处理可能出现的错误
                e.printStackTrace();
                ActionError error = new ActionError(e.getMessage());
                errors.add(ActionErrors.GLOBAL_ERROR, error);
            }
        }
        //如出错就转向输入页面,并显示相应的错误信息
        saveErrors(servletRequest, errors);
        return new ActionForward(actionMapping.getInput());
    }
}

⌨️ 快捷键说明

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