📄 pjaction.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 + -