![JAR search and dependency download from the Maven repository](/logo.png)
com.yuxuan66.core.handler.RequestHandler Maven / Gradle / Ivy
package com.yuxuan66.core.handler;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.Method;
import java.lang.reflect.Parameter;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
import com.yuxuan66.core.constant.Constant;
import com.yuxuan66.core.exception.FlashSysException;
import com.yuxuan66.core.interceptor.IInterceptor;
import com.yuxuan66.core.message.MessageConvert;
import com.yuxuan66.core.message.impl.DefaultMessageConvert;
import com.yuxuan66.core.utils.CacheManager;
import com.yuxuan66.core.utils.web.HandlerUtils;
import com.yuxuan66.core.utils.web.ServletUtils;
import com.yuxuan66.core.utils.web.WebContext;
public class RequestHandler extends AbstractHandler {
@Override
public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
// 所有的拦截器
List interceptors = CacheManager.getData(Constant.MVC_INTERCEPTORS);
List messageConverts = CacheManager.getData(Constant.MVC_MESSAGECONVERT);
WebContext.setRequest(request);
WebContext.setResponse(response);
// 遍历在Headler获取前需要执行的拦截器
for (IInterceptor interceptor : interceptors) {
try {
if (!interceptor.beforeHandler(request, response)) {
baseRequest.setHandled(true);
return;
}
} catch (Exception e) {
throw new FlashSysException("Interceptor execution failed", e);
}
}
MappingHandler mappingHandler = HandlerUtils.getHandler();
if (mappingHandler == null) {
return;
}
// 给Controller放入req,resp对象
new ServletUtils(mappingHandler.getController()).set();
// 本地请求方法
Method method = mappingHandler.getMappingMethod();
// 处理参数 暂时仅支持Map类型
Parameter[] parameters = method.getParameters();
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy