?? 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;
/**
* 業(yè)務(wù)調(diào)用Servlet,用于web訪問<br>
* @author wang yong
* @version 1.4.2.4
* 去掉fcode變量限制,采用request name 標(biāo)示動(dòng)作 <br>modify by yanger 2003-4-24 13:32
*/
public class ActionServlet extends HttpServlet {
/**
* 業(yè)務(wù)邏輯處理bean 類路徑
*/
public static final String ACTION_BEAN_PATH = "cn.com.syntc.webapp.business.";
/**
* 業(yè)務(wù)邏輯處理bean 類名結(jié)尾字符串
*/
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();//得到業(yè)務(wù)處理的開始時(shí)間
HttpSession session = request.getSession();
// 用戶信息
UserSession USession = (UserSession)session.getAttribute("UserSession");
// 用戶驗(yàn)證
if (USession == null || USession.isGuest())
{
if(!"/Login.do".equals(request.getRequestURI()) &&
!"/Logout.do".equals(request.getRequestURI()))
{
// 不允許游客登陸
System.out.println( "未登錄或停滯時(shí)間過久,請重新登陸!");
response.sendRedirect(LOGINPAGE);
return;
}
}
System.out.println( "FrameWork:處理開始!" );
/**
* 構(gòu)造數(shù)據(jù)輸入類(轉(zhuǎn)換session和request)
*/
Parameters parameters = new Parameters(request);
/**
* 創(chuàng)建對象,用于實(shí)例化業(yè)務(wù)Bean
*/
String actionKey = RequestUtil.getServletNameNoExtend(request);
String servletName = RequestUtil.getServletName(request);
String BusinessBeanName = ACTION_BEAN_PATH + actionKey + ACTION_BEAN_NAME;
System.out.println("FrameWork:實(shí)例化業(yè)務(wù)處理類【" + 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:執(zhí)行validate方法");
// 取得validate方法
BMethod = BusinessBeanClass.getMethod("validate", paramClasses);
// 執(zhí)行validate方法
BMethod.invoke(BusinessBeanOjbect, paramObjects);
/* -------------------- 業(yè)務(wù)邏輯處理 ------------------- */
System.out.println("FrameWork:執(zhí)行execute方法");
// 取得execute方法
BMethod = BusinessBeanClass.getMethod("execute", paramClasses);
// 執(zhí)行execute方法
BMethod.invoke(BusinessBeanOjbect, paramObjects);
/* -------------------- 數(shù)據(jù)輸出類的實(shí)類設(shè)置到session的屬性里面 --------------------- */
session.removeAttribute("outparam");
session.setAttribute("outparam", parameters);
}
catch(ClassNotFoundException CNFex){
System.out.println("FrameWork:業(yè)務(wù)處理類實(shí)例化失敗1【" + BusinessBeanName + "】");
}
catch(InstantiationException Iex){
System.out.println("FrameWork:業(yè)務(wù)處理類實(shí)例化失敗2【" + BusinessBeanName + "】");
}
catch(IllegalAccessException IAex){
System.out.println("FrameWork:業(yè)務(wù)處理類實(shí)例化失敗3【" + BusinessBeanName+"】");
}
catch(NoSuchMethodException NSMex){
System.out.println("FrameWork:業(yè)務(wù)處理類實(shí)例化失敗4【" + BusinessBeanName + "】");
}
catch(InvocationTargetException ITex){
System.out.println("FrameWork:業(yè)務(wù)處理類實(shí)例化失敗5【" + BusinessBeanName+"】");
}
catch(CommonException Cex){
System.out.println("FrameWork:業(yè)務(wù)處理類實(shí)例化失敗6【" + BusinessBeanName+"】");
}
long endTimeMillis = System.currentTimeMillis();
System.out.println("FrameWork:業(yè)務(wù)處理耗時(shí) -- "+(endTimeMillis - beginTimeMillis)+"MSEL"); //得到業(yè)務(wù)處理的結(jié)束時(shí)間
System.out.println("FrameWork:畫面遷移【" + (String)parameters.getParameters("results", "ForwardPage")+"】");
response.sendRedirect(response.encodeURL((String)parameters.getParameters("results", "ForwardPage")));
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -