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

📄 requestcontext.java~9~

📁 java系统通用框架 很实用的东东 一般人都看的懂,
💻 JAVA~9~
📖 第 1 页 / 共 2 页
字号:
/*****************************************************************************
* (C) Copyright 2004 。
* 保留对所有使用、复制、修改和发布整个软件和相关文档的权利。
* 本计算机程序受著作权法和国际公约的保护,未经授权擅自复制或
* 传播本程序的全部或部分,可能受到严厉的民事和刑事制裁,并
* 在法律允许的范围内受到最大可能的起诉。
*/

 /*****************************************************************************
  * @作者:Golden Peng
  * @版本: 1.0
  * @时间: 2002-10-08
  */
 /*****************************************************************************
  * 修改记录清单
  * 修改人  :
  * 修改记录:
  * 修改时间:
  * 修改描述:
  *
  */
package com.corp.bisc.ebiz.base;

import java.util.*;
import java.sql.*;
import javax.servlet.http.*;
import java.io.*;
import com.corp.bisc.ebiz.exception.*;
import com.corp.bisc.ebiz.member.*;
import com.corp.bisc.ebiz.util.*;
import com.corp.bisc.ebiz.security.*;
/**
 * Insert the type's description here.
 * Creation date: (2002-5-13 12:30:08)
 * @author: Administrator
 */
public class RequestContext extends ObjectBase
{
	private static int connectionInUse = 0;
	protected HttpServletRequest request = null;
	protected HttpServletResponse response = null;
	protected ActionDef action;
	protected ConfigRepository config;


	private TransactionManager transMgr = null;
	private AuthenticateProvider authProvider = null;

	private Hashtable hashConnection = new Hashtable();
	private Connection transConnection = null;


	private CmdResult result = new CmdResult("*");
	protected int curCommand = 0;
	private HttpSession session = null;

	private String appName;
	private Hashtable files;
	private Hashtable parameters;
	private String lang = null;

	private int transactionStatus = TransactionManager.TRANSACTION_CONTINUE;

	private LogManager logManager = LogManager.getManager();

	protected User member = null;

	private boolean ifmultipart = false;

	private boolean pki_signed = true;
protected RequestContext(HttpServletRequest _req , HttpServletResponse _res)
{
	request = _req;
	response = _res;
}
public void abortTransaction()
{
	transactionStatus = TransactionManager.TRANSACTION_ROLLBACK;
}
protected void cleanup()
{
	enter("cleanup()");


	if (hashConnection.size() != 0)
	{
		log.warn("DB Connection leak was found!!!");
		int nCount = 0;


		for(Enumeration e = hashConnection.keys() ; e.hasMoreElements() ; )
		{

			String key = (String)e.nextElement();
                        String sDsName=key.substring(0,key.charAt('.') - 1);
			nCount = connectionInUse - 1;
			connectionInUse--;
			log.info("The closed connection id is:->" + conn + "---connection count is:->" + nCount);
			config.getConnHandler().closeConnection(conn);
		}

		hashConnection.clear();
	}

	leave("cleanup()");
}
public void commitTransaction()
{
	transactionStatus = TransactionManager.TRANSACTION_COMMIT;
}
	public Connection freeDBConnection(Connection conn)
	{
		enter("freeDBConnection(Connection)");

		freeDBConnection(conn,null);

		leave("freeDBConnection(Connection)");

		return null;
	}
	public Connection freeDBConnection(Connection conn,String dsName)
	{
		enter("freeDBConnection(Connection)");

		ActionDef action = getActionDefinition();
		String accessKey = null;
		CommandMap currCmd = action.getCurrentCommandMap();

		int nCount = connectionInUse - 1;
		if(currCmd == null)
		{
			//this is the last free db connection in servlet logging.
			accessKey = (dsName == null) ? ".1" : dsName + ".1";

			info("Close connection with accessKey:->" + accessKey);
			hashConnection.remove(accessKey);
			info("The closed connection id is:->" + conn + "---connection count is:->" + nCount);
			connectionInUse--;
			config.getConnHandler().closeConnection(dsName,conn);
		}
		else
		{
			if(dsName == null)
				dsName = "";

			accessKey = (currCmd.getTransId() == null) ? dsName + ".1" : dsName + "." + currCmd.getTransId();
			/*
			//we will close the connection if its not a default connection and is transaction end.
			if(currCmd.isTransEnd() && (!accessKey.equals("1")))
			{
				info("Close connection with accessKey:->" + accessKey);
				hashConnection.remove(accessKey);
				info("The closed connection id is:->" + conn);
				config.getConnHandler().closeConnection(conn);
			}
			*/
			//we will close the connection if it is transaction end.
			if(currCmd.isTransEnd())
			{
				info("Close connection with accessKey:->" + accessKey);
				hashConnection.remove(accessKey);
				info("The closed connection id is:->" + conn + "---connection count is:->" + nCount);
				connectionInUse--;
				config.getConnHandler().closeConnection(dsName,conn);
			}
		}

		leave("freeDBConnection(Connection)");

		return null;
	}
protected ActionDef getActionDefinition()
{
	return action;
}
	public AuthenticateProvider getAuthProvider()
	{
		AuthenticateProvider authProvider = config.getAuthProvider();
		return authProvider;
	}
public Object getBinaryParameterValue(String paramName) throws InvalidParameterException
{
	Object result = null;
	Vector vect = (Vector) parameters.get(paramName);
	if(vect == null)
		return null;
	String value =(String) vect.elementAt(0);
	ParamChecker checker = action.getParamChecker(paramName);

	if (checker == null)
		result = value;
	else
		result = checker.getValidValue(value);
	return result;
}
public Object[] getBinaryParameterValues(String paramName)
    throws Exception {
    System.out.println( "In Request Context.getBinaryParameterValues.........");
    Vector vect = null;
    String[] result = null;

    vect = (Vector) parameters.get(paramName);
    if (vect == null)
        return null;

    Object[] values = vect.toArray();
    ParamChecker checker = action.getParamChecker(paramName);

    if (values == null)
        return null;
    int len = values.length;

	System.out.println( "Parameter Names:" + paramName);
    if (checker == null){
		System.out.println( "Parameter number:" + len );
	    result = new String[len];
		System.out.println( "Don't check.........");
	    for (int i = 0; i < len; i++) {
            String value = null ;
            if ( values[i] instanceof String ){
	            System.out.println( "Input data is String ............" );
	            result[i] = (String) values[i];
            }
            else{
	            System.out.println( "Input data isn't String ............" );
            }
        }
//		result = values;
    }
    else {
		System.out.println( "Checking.........");
	    result = new String[len];
        for (int i = 0; i < len; i++) {
            String value = (String) values[i];
            result[i] = value;
//            result[i] = checker.getValidValue(value);
        }
    }
	System.out.println( "End Request Context.getBinaryParameterValues.........");
	return result;
    }
/**
 * 此处插入方法描述。
 * 创建日期:(2002-7-1 21:04:27)
 * @return java.lang.String
 */
public String getClientCert() {
	String result = null;
	try{
		result = (String)request.getSession().getAttribute("clientCert");
	}catch(Exception e){
		System.out.println(e);
	}
	return result;
}
	protected CmdResult getCmdResult()
	{
		return result;
	}
	public int getCommandName()
	{
		return curCommand;
	}
    public Connection getDBConnection() throws SQLException,PortalException
    {
            return getDBConnection(null);
    }

   public Connection getDBConnection(String dsName) throws SQLException, PortalException
	{
		enter("getDBConnection(String)");

		//此段程序利用了TransactionManager的概念,可似乎不完善
		//暂时改成只是利用cmdmap 的transaction id来进行判断
		//日后对事务处理需要重新考虑
		/*
		TransactionManager myTransMgr = getTransManager();
		Connection conn = null;

		boolean isTransConnection = myTransMgr.isInTransaction() && !myTransMgr.isXATransaction;

		if (isTransConnection && transConnection != null)
		{
			conn = transConnection;
		}

		if (conn == null)
		{
			ConnPoolHandler handler = config.getConnHandler();

			if (dsName == null)
				conn = handler.getConnection();
			else
				conn = handler.getConnection(dsName);

			if (isTransConnection)
				transConnection = conn;

			hashConnection.put(conn , conn);
		}
		*/
		/*
		Connection conn = null;
		ActionDef action = getActionDefinition();
		CommandMap currCmd = action.getCurrentCommandMap();
		//if(!currCmd.isTransBegin()){
			if(transConnection != null){
				if(!transConnection.isClosed())
					conn = transConnection;
				else
					transConnection = null;
			}
		//}
		if (conn == null)
		{
			ConnPoolHandler handler = config.getConnHandler();

			if (dsName == null)
				conn = handler.getConnection();
			else
				conn = handler.getConnection(dsName);

			if (currCmd.isTransBegin())
				transConnection = conn;
			if(dsName == null)
				hashConnection.put(conn , conn);
			else
				hashConnection.put(dsName,conn);
		}
		*/

		Connection conn = null;
		ActionDef action = getActionDefinition();
		CommandMap currCmd = action.getCurrentCommandMap();
		String accessKey = (currCmd == null || currCmd.getTransId() == null) ? "1" : currCmd.getTransId();

		//use transid and dsName to build accessKey
		accessKey = (dsName == null) ? "." + accessKey : dsName + "." + accessKey;
		conn = (Connection)hashConnection.get(accessKey);
		ConnPoolHandler handler = config.getConnHandler();
		if(conn == null || conn.isClosed())
		{
			if(conn == null)
				info("Get a new connection with accessKey:->" + accessKey);
			else
				info("Get a new connection because the cache has been closed. accessKey:->" + accessKey);
			if(dsName == null)
				conn = handler.getConnection();
			else
				conn = handler.getConnection(dsName);

			hashConnection.put(accessKey, conn);
			int nCount = connectionInUse + 1;
			info("The connection id is:->" + conn + "--- Connection in use is:->" + nCount);
			connectionInUse++;
		}
		else
			info("use a cache connection with accessKey:->" + accessKey);

		leave("getDBConnection(String)");

		return conn;
	}
/**
 * 此处插入方法描述。
 * 创建日期:(2002-5-22 19:43:25)
 * @param name java.lang.String
 * @param file java.io.File
 */
public FileObject getFile(String name) {

	FileObject file = null;
	if(files != null)
		file = (FileObject) files.get(name);
	return file;
}
/**
 * 此处插入方法描述。
 * 创建日期:(2002-5-22 20:17:50)
 * @return java.util.Hashtable
 */
public Enumeration getFileParaNames() {

	if(files == null)
		return null;
	return files.keys();
}
public InputStream getInputStream() throws IOException
{
	return request.getInputStream();
}
public String getLanguage()
{
	if (lang == null)
	{
		String localeStr = null;
		Cookie cookie[] = request.getCookies();
		LangManager langMgr = config.getLangManager();

		if (cookie.length != 0)
		{
			for (int i = 0; i < cookie.length; i++)
			{
				if (cookie[i].getName().equalsIgnoreCase("language"))
					localeStr = cookie[i].getValue();
			}
		}

		if (localeStr == null)
		{
			localeStr = request.getHeader("Accept-Language");
			if (localeStr != null)
			{
				StringTokenizer st = new StringTokenizer(localeStr, ",");

				while(st.hasMoreElements())
				{
					localeStr = (String) st.nextElement();
					if (localeStr != null)
					{
						localeStr = localeStr.trim();

						if (langMgr.getLangConfig(localeStr) != null)
							break;
					}
				}
			}
		}

		if (localeStr == null)
			localeStr = langMgr.getDefaultLang();

		lang = localeStr;
	}

	return lang;
}
/**
 * 此处插入方法描述。
 * 创建日期:(2002-5-22 16:03:47)
 * @return org.apache.log4j.Category
 */
public org.apache.log4j.Category getLogger() {
	return log;
}
public LogManager getLogManager()
{
	return logManager;
}
public String getMessage(String id)
{
	return null;
}
public Object getNormalParameterValue(String paramName) throws InvalidParameterException
{
	Object result = null;
	String value = request.getParameter(paramName);
	ParamChecker checker = action.getParamChecker(paramName);

	if (checker == null)
		result = value;
	else
		result = checker.getValidValue(value);

	return result;
}
public Object[] getNormalParameterValues(String paramName)

⌨️ 快捷键说明

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