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

📄 requestcontext.java~9~

📁 java系统通用框架 很实用的东东 一般人都看的懂,
💻 JAVA~9~
📖 第 1 页 / 共 2 页
字号:
    throws InvalidParameterException {
    Object[] result = null;

    String[] values = request.getParameterValues(paramName);
    ParamChecker checker = action.getParamChecker(paramName);

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

    if (checker == null)
        result = values;
    else {
        result = new Object[len];
        for (int i = 0; i < len; i++) {
            String value = values[i];
            result[i] = checker.getValidValue(value);
        }
    }

    return result;
}
public OutputStream getOutputStream() throws IOException
{
	//response.setContentType();
	return response.getOutputStream();
}
public Object getParameter(String paramName) throws InvalidParameterException,NoPKISignatureException
{
	enter("getParameter(String)");
	//try to retrieve value from member field -- parameters

	String method = request.getMethod();

	//try to retrieve value from member field -- parameters
	Vector vect = null;
	if(parameters != null)
	{
		vect = (Vector)parameters.get(paramName);
		if(vect != null)
		{
			String value =(String) vect.elementAt(0);
			ParamChecker checker = action.getParamChecker(paramName);

			if (checker == null)
				return value;
			else
				return checker.getValidValue(value);
		}
	}

	switch(action.getProtocol())
	{
	case ActionDef.REQUEST_TYPE_NORMAL:
		return getNormalParameterValue(paramName);
	case ActionDef.REQUEST_TYPE_FREEPKI:
		{
			if((ifMemberNeedPKI())&&(method.equalsIgnoreCase("POST"))&&(pki_signed))
				return getBinaryParameterValue(paramName);
			else
				return getNormalParameterValue(paramName);
		}
	case ActionDef.REQUEST_TYPE_SIGNED:
		{
			if(method.equalsIgnoreCase("GET")){
				return getNormalParameterValue(paramName);
			}else{
				if(!pki_signed)
					throw new NoPKISignatureException("please use your certificate!");
				else
					return getBinaryParameterValue(paramName);
			}

		}
	case ActionDef.REQUEST_TYPE_FREEPKI_BIN:
		{
			if((ifMemberNeedPKI())&&(pki_signed))
				return getBinaryParameterValue(paramName);
			else{
				if(method.equalsIgnoreCase("POST")){
					return this.getBinaryParameterValue(paramName);
				}
				return getNormalParameterValue(paramName);
			}

		}
	case ActionDef.REQUEST_TYPE_BINARY:
		{
			//multipart form but get
			if(!ifmultipart){
				return getNormalParameterValue(paramName);
			}else{
				return this.getBinaryParameterValue(paramName);
			}
		}
	}


	leave("getParameter(String)");

	return null;
}
public Enumeration getParameterNames()
{
	switch(action.getProtocol())
	{
	case ActionDef.REQUEST_TYPE_NORMAL:
		return request.getParameterNames();
	case ActionDef.REQUEST_TYPE_FREEPKI:
		{
			if(!ifMemberNeedPKI())
				return request.getParameterNames();
			else
				return parameters.keys();
		}
	case ActionDef.REQUEST_TYPE_SIGNED:
	case ActionDef.REQUEST_TYPE_FREEPKI_BIN:
	case ActionDef.REQUEST_TYPE_BINARY:
		{
			return parameters.keys();
		}
	}
	return null;

}
public Object[] getParameterValues(String paramName)
    throws InvalidParameterException, NoPKISignatureException, Exception {
    enter("getParameterValues(String)");

    String method = request.getMethod();
    String[] result = null;

    //try to retrieve value from member field -- parameters
    Vector vect = null;
    if (parameters != null) {
        vect = (Vector) parameters.get(paramName);
        if (vect != null) {
            Object[] values = vect.toArray();
            ParamChecker checker = action.getParamChecker(paramName);

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

            if (checker == null) {
                result = new String[len];
                for (int i = 0; i < len; i++) {
                    String value = null;
                    if (values[i] instanceof String) {
                        result[i] = (String) values[i];
                    } else {
                        System.out.println("Input data isn't String ............");
                    }
                }
            } else {
                result = new String[len];
                for (int i = 0; i < len; i++) {
                    String value = (String) values[i];
                    result[i] = value; //checker.getValidValue(value);
                }
            }
            return result;
        }
    }

    switch (action.getProtocol()) {
        case ActionDef.REQUEST_TYPE_NORMAL :
            return getNormalParameterValues(paramName);

        case ActionDef.REQUEST_TYPE_BINARY :
            {

                if (!ifmultipart) {
                    return getNormalParameterValues(paramName);
                } else {
                    return getBinaryParameterValues(paramName);
                }
            }

        case ActionDef.REQUEST_TYPE_FREEPKI :
            {
                if ((ifMemberNeedPKI()) && (method.equalsIgnoreCase("POST")) && (pki_signed))
                    return getBinaryParameterValues(paramName);
                else
                    return getNormalParameterValues(paramName);
            }

        case ActionDef.REQUEST_TYPE_FREEPKI_BIN :
            {
                if ((ifMemberNeedPKI()) && (pki_signed))
                    return getBinaryParameterValues(paramName);
                else {
                    if (method.equalsIgnoreCase("POST")) {
                        return this.getBinaryParameterValues(paramName);
                    }
                    return getNormalParameterValues(paramName);
                }

            }

        case ActionDef.REQUEST_TYPE_SIGNED :
            {
                if (method.equalsIgnoreCase("GET")) {
                    return getNormalParameterValues(paramName);
                } else {
                    if (!pki_signed)
                        throw new NoPKISignatureException("please use your certificate!");
                    else
                        return getBinaryParameterValues(paramName);
                }
            }

    }

    leave("getParameterValues(String)");

    return null;
}
public HttpServletRequest getRequest()
{
	return request;
}
	public HttpServletResponse getResponse()
	{
		return response;
	}
public BizObject getSessionValue()
{
	if(action.getSessionkey() == null)
		throw new TraceException("No session key defined");
	if (session == null)
		session = request.getSession(false);

	return session == null ? null : (BizObject)session.getAttribute(action.getSessionkey());
}
public BizObject getSessionValue(String key)
{
	if(action.getSessionkey() == null)
		throw new TraceException("No session key defined");
	if (session == null)
		session = request.getSession(false);

	return session == null ? null : (BizObject)session.getAttribute(key);
}
	public int getTransactionStatus()
	{
		return transactionStatus;
	}
	public TransactionManager getTransManager()
	{
		enterleave("getTransManager()");

		if (transMgr == null)
		{
			transMgr = new TransactionManager();
		}

		return transMgr;
	}
public User getUser()
{
	if(member == null)
	{
		HttpSession session = request.getSession(false);
		if(session != null)
			member = (User)session.getAttribute("_webuser");
	}
	return member;
}
/**
 * 通过调用本函数,RequestCotext可以知道当前处理到了那一个Command,
 * 从而做出相应的处理
 **/
public CommandMap goNextStep()
{
	CommandMap aMap = action.getNextCommandMap();
	curCommand++;
	return aMap;
}
/**
 * 此处插入方法描述。
 * 创建日期:(2002-9-13 10:35:50)
 * @return boolean
 */
public boolean ifMemberNeedPKI() {
	if (session == null)
		session = request.getSession(true);
	String ifneedpki = (String)session.getAttribute("membercompany_needpki");
	if((ifneedpki != null)&&(ifneedpki.equalsIgnoreCase("true")))
		return true;
	return false;
}
/**
 * put the prior command result as a parameter to the next command
 * @return void
 */
protected void mergeBizComp(BizComponent comp)
{
	/*
	if(comp != null){
		request.setAttribute(comp.getName(),comp);
	}
	*/
	if(comp != null)
	{
		if(parameters == null)
			parameters = new Hashtable();
		Vector vt = comp.getValues();
		for(int i=0; i<vt.size(); i++)
		{
			Hashtable aHash = (Hashtable)vt.elementAt(i);
			Enumeration keys = aHash.keys();
			while(keys.hasMoreElements())
			{
				String key = (String)keys.nextElement();
				Object value = aHash.get(key);
				if(value instanceof String)
				{
					Vector vtValue = new Vector();
					vtValue.addElement(value);
					parameters.put(key, vtValue);
				}
			}
		}
	}
}
	protected void prepareParams()
	{
		enter("enter prepareParams()");
		if(action == null)
			return;

		switch(action.getProtocol()){
			case ActionDef.REQUEST_TYPE_BINARY:{
				retrieveUpload();
			}
			break;
			case ActionDef.REQUEST_TYPE_XML:
			break;
			case ActionDef.REQUEST_TYPE_NORMAL:
			break;
		}

		enter("leave prepareParams");
	}
public void putSessionValue(BizObject obj)
{
	if(action.getSessionkey() == null)
		throw new TraceException("No session key defined");
	if (session == null)
		session = request.getSession();

	session.setAttribute(action.getSessionkey() , obj);
}
public void putSessionValue(String key, BizObject obj)
{
	if(action.getSessionkey() == null)
		throw new TraceException("No session key defined");
	if (session == null)
		session = request.getSession();

	session.setAttribute(key , obj);
}
/**
 * 上载文件form的处理。
 * 创建日期:(2002-6-5 19:17:45)
 * @return boolean
 */
private boolean retrieveUpload() {

	String uploadpath = config.getUploadConfig().getUploadpath();
	float uploadSizeLimit = config.getUploadConfig().getUploadSizeLimit();

	try {
        int c;
        com.corp.bisc.ebiz.util.MultipartHeader multipartHeader;
        UploadReader uploadReader = new UploadReader(request);
        if(!uploadReader.isMultipart()){
	        ifmultipart = false;
        	return true;
        }else
        	ifmultipart = true;


        while ((multipartHeader = uploadReader.getHeader()) != null) {

            if (multipartHeader.isFile()) {

                String fileParaName = multipartHeader.getParamName();
                String fileName = multipartHeader.getFileName().substring(multipartHeader.getFileName().lastIndexOf("\\")+1);

                if (multipartHeader.getFileName().compareTo("") != 0) {
	   				ByteArrayOutputStream baos = new ByteArrayOutputStream();
                    //create a local file for saving uploaded file

                    //save uploaded file
                    float fsize = 0;
                    while ((c = uploadReader.getBodyChar()) != UploadReader.EOF) {

	                    baos.write(c);
                        fsize ++;
                        if(fsize>uploadSizeLimit){
	                        baos.close();
                        	log.error("upload file exceed the size");
                        }
                    }
                    FileObject file = new FileObject();
                    file.setByteArray(baos.toByteArray());
                    file.setName(fileName);
					setFile(fileParaName,file);
                 	baos.close();

                } else {
                    uploadReader.skipFile();
                }
            } else {
                String paraName = multipartHeader.getParamName();
                String paraValue = uploadReader.getParamValue();

                if(parameters == null)
                	parameters = new Hashtable();
                if(parameters.containsKey(paraName)){
	                Vector vect = (Vector)parameters.get(paraName);
	                vect.add(paraValue);
	                parameters.put(paraName,vect);
                }else{
	                Vector vect = new Vector();
	                vect.add(paraValue);
                	parameters.put(paraName,vect);
                }

            }

        }

    } catch (Throwable theException) {
        System.out.println(theException);
        return false;
    }
	return true;
}
/**
 * 设置Response的content type。
 * 创建日期:(2002-6-25 15:59:37)
 * @param type java.lang.String
 */
public void setContentType(String type) {
	getResponse().setContentType(type);
}
/**
 * 此处插入方法描述。
 * 创建日期:(2002-5-22 19:43:25)
 * @param name java.lang.String
 * @param file java.io.File
 */
private void setFile(String name, FileObject file) {
	if(files == null)
		files = new Hashtable();
	files.put(name,file);
}
public void setUser(User user)
{
	member = user;
}
}

⌨️ 快捷键说明

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