一、 注解
SPRING中广泛使用注解,常用的有:
@Controller
@RequestMapping(value = "/tables/list", method = RequestMethod.GET)
@ResponseBody
二、 web.xml
这个文件中,进行了集中配置,同时标明了servlet的配置文件。
如下这段,就表示我们有一个glider-servlet.xml的配置文件,同时使用了前端控制器。
DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自已定义,把拦截下来的请求,依据相应的规则分发到目标Controller来处理,是配置spring MVC的第一步。
/api/*标明了匹配规则,也就是以/api/开头的所有请求,都会被匹配
三、 servlet xml
进入到glider-servlet.xml中
这行,使能了自动扫描。
MVC框架会按照注解自动匹配http请求,和后台的controller处理。
举例:
我们触发一个GET类型的请求:
http://1.2.3.4:9999/api/projects/list
这样,后台会匹配到如下代码执行:
@Controller
public class ProjectController {
除了将前端请求和后台控制进行自动匹配外,在此xml里,还可以配置拦截器。
这段配置,表示所有匹配规则的所有请求,都会执行拦截器实例:
com.dtdream.glider.interceptor.LoginInterceptor
public class LoginInterceptor extends HandlerInterceptorAdapte
所有请求,都会先执行拦截器LoginInterceptor,当拦截器返回true,才会继续匹配controller,继续执行下去。
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
这个是拦截器中的一个重载方法,顾名思义,预处理,也就是拦截器匹配到请求时,就会进入此方法执行,返回结果是布尔型。
四、 控制部分
核心处理,都在控制部分,也就是标签为@Controller 的类。
@Controller
public class ProjectController {…}
这个类中,有很多方法,方法都有标签,例如:
@RequestMapping(value = "/projects/list", method = RequestMethod.GET)
@RequestMapping表示请求匹配规则,当请求地址符合"/projects/list",动作为GET的时候,就会执行方法getProjects()。
例如请求地址:http://1.2.3.4:9999/api/projects/list
@ResponseBody表示返回