springmvc怎么找到controller?springmvc如何创建controller?

在SpringMVC 中,控制器Controller的作用非常重要,它能够通过对应的接口,检查相关业务,帮助我们快速的检索代码中存在的漏洞缺陷。那springmvc怎么找到controller?下面来我们就来给大家讲解一下。

1. 首先应该检查对应的spring配置文件,检查对应的扫描包以及bean配置;

2. 然后通过配置文件反馈的信息,可以直接定位bean定义的以及注解标记的Contoller;

3. 关键字检索;

4. 命名规范(controller);

5. 两个重要的注解(@Controller、@RequestMapping);

找到Controller后即可快速理解对应的接口业务,然后根据对应的service实现以及dao层的SQL交互,结合Filter、Inteceptor过滤等场景进行漏洞缺陷的审计了。

Spring MVC 执行流程:

springmvc怎么找到controller?springmvc如何创建controller?.png

1. 用户点击某个请求路径,发起一个 HTTP request 请求,该请求会被提交到 DispatcherServlet(前端控制器);

2. 由 DispatcherServlet 请求一个或多个 HandlerMapping(处理器映射器),并返回一个执行链(HandlerExecutionChain)。

3. DispatcherServlet 将执行链返回的 Handler 信息发送给 HandlerAdapter(处理器适配器);

4. HandlerAdapter 根据 Handler 信息找到并执行相应的 Handler(常称为 Controller);

5. Handler 执行完毕后会返回给 HandlerAdapter 一个 ModelAndView 对象(Spring MVC的底层对象,包括 Model 数据模型和 View 视图信息);

6. HandlerAdapter 接收到 ModelAndView 对象后,将其返回给 DispatcherServlet ;

7. DispatcherServlet 接收到 ModelAndView 对象后,会请求 ViewResolver(视图解析器)对视图进行解析;

8. ViewResolver 根据 View 信息匹配到相应的视图结果,并返回给 DispatcherServlet;

9. DispatcherServlet 接收到具体的 View 视图后,进行视图渲染,将 Model 中的模型数据填充到 View 视图中的 request 域,生成最终的 View(视图);

10. 视图负责将结果显示到浏览器(客户端)。

springmvc如何创建controller?

在 src 目录下创建 net.biancheng.controller 包,并在该包中创建 RegisterController 和 LoginController 两个传统风格的控制器类(实现 Controller 接口),分别处理首页中“注册”和“登录”超链接的请求。

Controller 是控制器接口,接口中只有一个方法 handleRequest,用于处理请求和返回 ModelAndView。

RegisterController 的具体代码如下。

package controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class LoginController implements Controller
{
    public ModelAndView handleRequest(HttpServletRequest arg0
        , HttpServletResponse arg1) throws Exception
    {
        return new ModelAndView("/WEB-INF/jsp/register.jsp");
    }
}

LoginController 的具体代码如下。

package controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class RegisterController implements Controller
{
    public ModelAndView handleRequest(HttpServletRequest arg0
        , HttpServletResponse arg1) throws Exception
    {
        return new ModelAndView("/WEB-INF/jsp/login.jsp");
    }
}

其实Controller可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求,而对于创建Controller以及寻找Controller,作为程序员一定要掌握,才能更好的使用springmvc。最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。

推荐阅读:

java程序员如何成为架构师?java程序员成为架构师思路

java内存溢出怎么定位?如何解决java内存溢出?

java反射三种方法是什么?如何通过远程调用java反射机制?