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

📄 gdreqtoinfoinandoutfilter.java

📁 j2ee程序。 spring、xml、 实现增加内容选项。
💻 JAVA
字号:
package com.gd.web.filter;

import java.io.File;
import java.io.IOException;
import java.util.List;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.gd.mvc.io.InfoInAndOut;
import com.gd.mvc.io.impl.GdInfoInAndOut;
import com.gd.mvc.util.GdParseXml;
import com.gd.mvc.util.GdWebPath;

public class GdReqToInfoInAndOutFilter implements Filter {
	protected FilterConfig config;
	//设定上下文路径
	private ServletContext context;
	private String filterName;
	/**
	 * 初始化Filter,取得上下文路径
	 */
	public void init(FilterConfig config) throws ServletException {
		this.config = config;
		context = config.getServletContext();
		filterName = config.getFilterName();
	}
	/**
	 * 进行过滤
	 */
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
		try {
			long startTime = System.currentTimeMillis();
			if (request instanceof HttpServletRequest && response instanceof HttpServletResponse) {
				HttpServletRequest req = (HttpServletRequest)request;
				HttpServletResponse res = (HttpServletResponse)response;
				String xmlPath = (String)req.getAttribute("xmlPath");
				String action = (String)req.getAttribute("action");
				String path = (String)req.getAttribute("path");
				String systemName = (String)req.getAttribute("systemName");
				//System.out.println("systemName为:" + systemName + " ,action为:" + action + " ,path为:" + path + " ,解析配置文件: " + xmlPath);
				GdParseXml parseXml = (GdParseXml)req.getAttribute("parseXml");
				//获取xml解析后的数据
				String method = parseXml.getMethod();//获取Xml中对应的方法
				String actionName = parseXml.getActionName();//获取Xml中访问路径对应的actionName
				String forwardJspInit = parseXml.getForwardJsp();//获取Xml设定的返回的页面
				String forwardJsp = parseXml.getMethodForwardJsp();//获取Xml设定的方法对应的返回的页面
				String forwardJspPath = parseXml.getForwardJspPath();//获取Xml设定的返回页面的path
				String prefix = parseXml.getPrefix();//获取Xml中设定的页面的前缀
				String suffix = parseXml.getSuffix();//获取Xml中设定的页面后缀
				String extendsAction = parseXml.getExtendsAction();//获取Xml中设定的是否继承GdAction
				List voId = parseXml.getVoId();//获取Xml中设定的voId
			    List voClass = parseXml.getVoClass();//获取Xml中设定的voClass
			    List voType = parseXml.getVoType();//获取Xml中设定的voType
			    List voValidate = parseXml.getVoValidate();//获取Xml中设定的voValidate
			    List voTable = parseXml.getVoTable();//获取Xml中设定的voTable
			    //将页面重传来的数据进行转换,置入InfoInAndOut
			    InfoInAndOut infoIn = new GdInfoInAndOut(req, res, voId, voClass, voType, voValidate);
			    InfoInAndOut infoOut = infoIn;
				//将解析后的数据,置入InfoInAndOut
			    infoIn.put("systemName", systemName);
			    infoIn.put("actionName", actionName);
				infoIn.put("method", method);
				infoIn.put("extendsAction", extendsAction);
			    infoIn.put("forwardJsp", forwardJsp);
				infoIn.put("forwardJspInit", forwardJspInit);
				infoIn.put("forwardJspPath", forwardJspPath);
				infoIn.put("prefix", prefix);
				infoIn.put("suffix", suffix);
				infoIn.put("voId", voId);
				infoIn.put("voClass", voClass);
				infoIn.put("voType", voType);
				infoIn.put("voValidate", voValidate);
				infoIn.put("voTable", voTable);
				infoIn.put("action", action);	
				request.setAttribute("infoIn", infoIn);
				request.setAttribute("infoOut", infoOut);
				context.log("systemName为:" + systemName + " ,action为:" + action + " ,path为:" + path + " ,res转换为Info共使用的时间:" + (System.currentTimeMillis() - startTime) + "ms" +
						"(该日志由 " + filterName + " 报出)");
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			chain.doFilter(request,response);
		}
	}
	/**
	 * 销毁
	 */
	public void destroy() {

	}
}

⌨️ 快捷键说明

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