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

📄 pjaction.java

📁 此系统为我大家完全开发一个相册管理系统
💻 JAVA
字号:
/* ====================================================================
 * $Id$
 * ====================================================================
 *  文件名    PJAction.java
 *  机能名    
 *  履历      2005-1-26 dlxu 创建新文件  
 *           Copyright 2004 东南大学 All Rights Reserved
 * ====================================================================
 */
package cn.edu.seu.album.common;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Category;
import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessages;

import cn.edu.seu.album.model.SessionBean;

/**
 * <p> [概 要] 业务用共同控制处理。</p>
 * <p> [详 细] 业务用共同控制处理。</p>
 * <p> [备 考] 无。</p>
 *
 * @author dlxu
 * @version 1.0 2005-1-26
 * @since 1.0
 */
public abstract class PJAction extends Action {

    /**
     * 日志定义。
     */
    private static final Category cat = Logger.getInstance(PJAction.class);

    /**
     * 初始化类别
     */
    protected static final String ACTION_INIT = "init";

    /**
     * 检索类别
     */
    protected static final String ACTION_SEARCH = "search";

    /**
     * 新规类别
     */
    protected static final String ACTION_INSERT = "insert";

    /**
     * 更新类别
     */
    protected static final String ACTION_UPDATE = "update";

    /**
     * 删除类别
     */
    protected static final String ACTION_DELETE = "delete";

    /**
     * 是否需要session验证。
     */
    private static final String NEED_SESSION = "session";

    /**
     * get
     */
    private static final String GET = "get";

    /**
     * post
     */
    private static final String POST = "post";

    /**
     * <p> [概 要] 业务用共通控制处理。</p>
     * <p> [详 细] 业务用共通控制处理。</p>
     * <p> [备 考] 无。</p>
     * @param mapping ActionMapping类
     * @param form ActionForm类
     * @param request HttpServletRequest类
     * @param response HttpServletResponse类
     * @return ActionForward类
     * @throws java.lang.Exception 产生异常
     * @see org.apache.struts.action.Action#execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
     */
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        // Form转换。
        PJActionForm pForm = (PJActionForm) form;

        String method = request.getMethod();

        // 得到是否要验证session的配置参数。
        String needLogin = mapping.getParameter();
        if (NEED_SESSION.equalsIgnoreCase(needLogin)) {
            cat.debug("需要session认证。");

            // 取得会话。
            HttpSession session = request.getSession(true);

            SessionBean sessionBean = (SessionBean) session
                    .getAttribute(PJConst.SESSION_BEAN_KEY);
            if (null == sessionBean) {
                cat.debug("没有session,所以转移到登录画面。");
                response.sendRedirect(request.getContextPath() + "/index.jsp");
                return null;
            } else {
                // 把用户信息设置到session中
                pForm.setSessionBean(sessionBean);
                cat.debug("该用户为:" + sessionBean.getPerson().getName());
            }
            //            String referer = request.getHeader("Referer");
            //            String pathInfo = request.getPathInfo();
            //            cat.debug("referer:" + referer);
            //            cat.debug("pathInfo:" + pathInfo);
            //            if (!referer.startsWith(pathInfo)) {
            //                cat.debug("不允许采用手动输入URL方式来转移页面");
            //                request.getRequestDispatcher(PJConst.ERROR_PAGE).forward(
            //                        request, response);
            //                return null;
            //            }

            //            if (!POST.equalsIgnoreCase(method)) {
            //                cat.debug("method:" + method);
            //                cat.debug("不允许采用手动输入URL方式来转移页面");
            //                request.getRequestDispatcher(PJConst.ERROR_PAGE).forward(
            //                        request, response);
            //                return null;
            //            }
        } else {

        }
        try {
            ActionMessages errs = new ActionErrors();

            // 业务逻辑实现
            ActionForward af = doAction(mapping, pForm, request, response, errs);

            if (!errs.isEmpty()) {
                cat.warn("ActionErrors不为空");
                cat.warn(errs);
                // 保存错误信息。
                saveErrors(request, errs);
            } else {
                cat.debug("ActionErrors为空");
            }
            if (null != af) {
                cat.debug(af.getPath());
            }
            return af;
        } catch (PJException e) {
            cat.warn(e);
            cat.debug("转向出错页面" + PJConst.ERROR_PAGE);
            request.getRequestDispatcher(PJConst.ERROR_PAGE).forward(request,
                    response);
            return null;
        }
    }

    /**
     * <p> [概 要] 业务用共通控制处理。</p>
     * <p> [详 细] 业务用共通控制处理。</p>
     * <p> [备 考] 无。</p>
     * @param mapping ActionMapping类
     * @param form ActionForm类
     * @param request HttpServletRequest类
     * @param response HttpServletResponse类
     * @param msgs
     * @return ActionForward类
     * @throws PJException 异常发生
     */
    protected abstract ActionForward doAction(ActionMapping mapping,
            PJActionForm aForm, HttpServletRequest request,
            HttpServletResponse response, ActionMessages errs)
            throws PJException;
}

⌨️ 快捷键说明

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