SpringMVC---初识SpringMVC
发布日期:2021-05-07 02:11:26 浏览次数:19 分类:精选文章

本文共 3688 字,大约阅读时间需要 12 分钟。

什么是SpringMVC

建议百度

SpringMVC的使用

pom环境的配置:

org.springframework
spring-webmvc
5.1.9.RELEASE
javax.servlet.jsp
jsp-api
2.2
provided
javax.servlet
servlet-api
2.5
provided
javax.servlet
jstl
1.2

在JavaWeb开发中,我们需要创建Servlet然后去web.xml去注册。

而在SpringMVC中,用controller去代替了Servlet,而且也不再需要去web.xml去注册了。

但还是要去web.xml注册配置DispatchServlet这个类。

DispatchServlet

SpringMVC的核心:请求分发器,前端控制器。

按照JavaWeb的理解就是,这个类帮我们去注册Servlet。

再SpringMVC中也就是帮我们注册Controller。

web.xml注册代码:

springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc--servlet.xml
1
springmvc
/

Spring配置文件

在resource目录下创建Spring配置文件。这个文件名称可以任意,但是为了命名习惯,这里命名为:springmvc-servlet.xml。

在这配置文件中,我们需要添加:

  • 处理器映射器
  • 处理器适配器
  • 视图解析器

还有就是也需要添加Controller的映射

处理器映射器和处理器适配器可以不用管它。

主要注意视图解析器和controller映射。

为了理解它们,先上Controller代码:

public class OneController implements Controller {       public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {           ModelAndView modelAndView = new ModelAndView();        //业务代码        String result="Hello MVC";        modelAndView.addObject("msg",result);        System.out.println(result);        //视图跳转        modelAndView.setViewName("test");        return modelAndView;    }}

当向服务器发送hello请求时:http://localhost:8080/hello

就会进入到OneController中,然后在OneController这个类中,注意到视图跳转这个方法。视图解析器会将该方法里的参数进行拼接:拼接后的结果就是web目录下的/WEB-INF/jsp/test.jsp。

(为什么要放到WEB-INF目录下:因为客户端不能直接访问,保证视图安全。)

所以最终会跳转到test.jsp页面。

困惑点:

不知道为什么,把jsp改为html,文件的后缀也改了,就是访问不了。

重要性:

真实的开发中不会用这种方式去写,而是用注解。

但是在面试中可能会问到Springmvc的原理,所以建议去多了解原理

注解开发

在实际开发中,基本上都是使用注解开发。

首先,先知道和上面的非注解开发,我们省去了那些步骤:

  • 不需要写处理器适配器
  • 不需要写处理器映射器
  • 不需要写controller的映射

步骤1:

依旧需要配置配置DispatchServlet:

springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc-servlet.xml
1
springmvc
/

步骤2:

省去了处理适配器和处理映射器,依旧需要视图解析器。

加入了 包扫描(为了扫描注解,具体内容可以看Spring5),还有就是添加了mvc命名空间(这部分可以不用写),该标签的内容看下面的注释。

步骤3:

之前非注解的写法需要写一个Controller接口的实现类。在这里我们需要要添加一个Controller注解。

@Controller@RequestMapping("/two")public class TwoController {   	//请求映射(映射访问地址)    @RequestMapping("/test")    public String getTest(Model model){               //封装数据        model.addAttribute("msg","Hello MVC");        //会被视图解析器解析,为该返回值加入前缀后缀        return "test";    }}

测试地址:

http://localhost:8080/two/test

映射jsp(地址为/WEB-INF/jsp/test.jsp):

    Title    ${msg}
上一篇:Spring MVC--RestFul风格
下一篇:注意区分需求和用户直接提出的解决方案!

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年04月04日 19时29分47秒