Request
Controller类中带有RequestMapping注解的方法处理特定URL请求,如何判断当前请求 URL&Method 对应那个Controller & method,这是接下来要实现的。通过反射可以获取Controller中带有RequestMapping注解的方法,进而获得RequestMapping注解中请求方法和请求路径。封装一个请求对象request与处理request对象handler,将request与handler建立一个映射关系。
请求对象request:包括请求路径path;请求方法method两个属性。
处理request对象handler:包括Controller类;带有RequestMapping注解的方法method。
/**
* 封装请求信息
*/
public class Request {
//请求方法
private String requestMethod;
//请求路径
private String requestPath;
public Request(String requestMethod,String requestPath) {
this.requestMethod = requestMethod;
this.requestPath = requestPath;
}
public String getRequestMethod() {
return requestMethod;
}
public String getRequestPath() {
return requestPath;
}
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}
@Override
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this,obj);
}
}
/**
* 处理Request请求对应Controller & method
*/
public class Handler {
private Class<?> controllerClass;
private Method method;
public Handler(Class<?> controllerClass,Method method) {
this.controllerClass = controllerClass;
this.method = method;
}
public Class<?> getControllerClass() {
return controllerClass;
}
public Method getMethod() {
return method;
}
}