📄 requestcontext.java~9~
字号:
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 + -