📄 gdreqtoinfoinandoutfilter.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 + -