sophiedispatcher.java

来自「设备资产管理源代码和 公共的函数」· Java 代码 · 共 88 行

JAVA
88
字号
package com.test.dispatcher;

import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.test.context.ConfigUtil;
import com.test.context.SophieContext;
import com.test.context.SophieStatic;
import com.test.parameter.Parameter;

/**
 * @version 	1.0
 * @author
 */
public class SophieDispatcher extends HttpServlet implements Servlet {


	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
		Map parametersMap=request.getParameterMap();
		setParamtersMap(request, parametersMap);
		SophieContext.setRequest(request);
		SophieContext.setResponse(response);
		
		
		String actionName=getActionName(request);
		
		
		SophieInvocation invocation=new SophieInvocation(actionName);
		String resultString=invocation.execute();
		ResultDispatcher resultDispatcher=new ResultDispatcher(invocation.getResultConfigMap(),resultString);
		resultDispatcher.Dispatcher();
	}
	

	/*
	 * init sophieContext
	 */
	public void init(ServletConfig config) throws ServletException {
		ServletContext context=config.getServletContext();
		

		Map configMap=new HashMap();
		configMap=ConfigUtil.initConfigurationMap();
		//context.setAttribute(SophieStatic.ACTION_RESULT_MAP, configMap);
		
		SophieContext.setServletContext(context);
		SophieContext.setConfigurationMap(configMap);
		
		
		
		System.out.println("===init====");
	}
	
	
	private void setParamtersMap(HttpServletRequest request,Map parametersMap){
		Parameter parm=new Parameter();
		Set entrySet=parametersMap.entrySet();
		Map map=new HashMap();
		for (Iterator iter = entrySet.iterator(); iter.hasNext();) {
			Map.Entry entry=(Map.Entry)iter.next();
			parm.setName((String)entry.getKey());
			parm.setValue((String[])entry.getValue());
			map.put((String)entry.getKey(), parm);
		}
		SophieContext.setRequestParametersMap(map);
	}
	
	
	private String getActionName(HttpServletRequest request){
		String uri=request.getRequestURI();
		String actionName=uri.substring(uri.lastIndexOf("/")+1, uri.indexOf(".action"));
		return actionName;
	}
}

⌨️ 快捷键说明

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