📄 actionservlet.java
字号:
/*
* @(#)BusinessBean.java
*
* Copyright 2003 by SYNTC, All rights reserved.
*
* This software is the confidential and proprietary information of SYNTC.
* ("Confidential Information").
*/
package cn.com.syntc.common.action;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.JspException;
import java.io.*;
import java.util.*;
import java.lang.reflect.*;
import cn.com.syntc.common.io.*;
import cn.com.syntc.common.util.*;
import cn.com.syntc.webapp.session.UserSession;
/**
* 业务调用Servlet,用于web访问<br>
* @author wang yong
* @version 1.4.2.4
* 去掉fcode变量限制,采用request name 标示动作 <br>modify by yanger 2003-4-24 13:32
*/
public class ActionServlet extends HttpServlet {
/**
* 业务逻辑处理bean 类路径
*/
public static final String ACTION_BEAN_PATH = "cn.com.syntc.webapp.business.";
/**
* 业务逻辑处理bean 类名结尾字符串
*/
public static final String ACTION_BEAN_NAME = "Bean";
/** 登录页面 */
public static final String LOGINPAGE = "/login.jsp";
/**
* Servlet Context
*/
private ServletContext application = null;
/**
* 取得Servlet Context
*/
public void init(ServletConfig config) throws ServletException
{
this.application = config.getServletContext();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
long beginTimeMillis = System.currentTimeMillis();//得到业务处理的开始时间
HttpSession session = request.getSession();
// 用户信息
UserSession USession = (UserSession)session.getAttribute("UserSession");
// 用户验证
if (USession == null || USession.isGuest())
{
if(!"/Login.do".equals(request.getRequestURI()) &&
!"/Logout.do".equals(request.getRequestURI()))
{
// 不允许游客登陆
System.out.println( "未登录或停滞时间过久,请重新登陆!");
response.sendRedirect(LOGINPAGE);
return;
}
}
System.out.println( "FrameWork:处理开始!" );
/**
* 构造数据输入类(转换session和request)
*/
Parameters parameters = new Parameters(request);
/**
* 创建对象,用于实例化业务Bean
*/
String actionKey = RequestUtil.getServletNameNoExtend(request);
String servletName = RequestUtil.getServletName(request);
String BusinessBeanName = ACTION_BEAN_PATH + actionKey + ACTION_BEAN_NAME;
System.out.println("FrameWork:实例化业务处理类【" + BusinessBeanName + "】");
try{
Class BusinessBeanClass = Class.forName(BusinessBeanName);
Object BusinessBeanOjbect = BusinessBeanClass.newInstance();
Method BMethod = null;
Class[] paramClasses = null;
Object[] paramObjects = null;
paramClasses = new Class[3];
paramClasses[0] = HttpServletRequest.class;
paramClasses[1] = HttpServletResponse.class;
paramClasses[2] = Parameters.class;
paramObjects = new Object[3];
paramObjects[0] = request;
paramObjects[1] = response;
paramObjects[2] = parameters;
/* -------------------- 表单检测处理 ------------------- */
System.out.println("FrameWork:执行validate方法");
// 取得validate方法
BMethod = BusinessBeanClass.getMethod("validate", paramClasses);
// 执行validate方法
BMethod.invoke(BusinessBeanOjbect, paramObjects);
/* -------------------- 业务逻辑处理 ------------------- */
System.out.println("FrameWork:执行execute方法");
// 取得execute方法
BMethod = BusinessBeanClass.getMethod("execute", paramClasses);
// 执行execute方法
BMethod.invoke(BusinessBeanOjbect, paramObjects);
/* -------------------- 数据输出类的实类设置到session的属性里面 --------------------- */
session.removeAttribute("outparam");
session.setAttribute("outparam", parameters);
}
catch(ClassNotFoundException CNFex){
System.out.println("FrameWork:业务处理类实例化失败1【" + BusinessBeanName + "】");
}
catch(InstantiationException Iex){
System.out.println("FrameWork:业务处理类实例化失败2【" + BusinessBeanName + "】");
}
catch(IllegalAccessException IAex){
System.out.println("FrameWork:业务处理类实例化失败3【" + BusinessBeanName+"】");
}
catch(NoSuchMethodException NSMex){
System.out.println("FrameWork:业务处理类实例化失败4【" + BusinessBeanName + "】");
}
catch(InvocationTargetException ITex){
System.out.println("FrameWork:业务处理类实例化失败5【" + BusinessBeanName+"】");
}
catch(CommonException Cex){
System.out.println("FrameWork:业务处理类实例化失败6【" + BusinessBeanName+"】");
}
long endTimeMillis = System.currentTimeMillis();
System.out.println("FrameWork:业务处理耗时 -- "+(endTimeMillis - beginTimeMillis)+"MSEL"); //得到业务处理的结束时间
System.out.println("FrameWork:画面迁移【" + (String)parameters.getParameters("results", "ForwardPage")+"】");
response.sendRedirect(response.encodeURL((String)parameters.getParameters("results", "ForwardPage")));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -