SpringMvc菜鸟详解

1、引言今天写一点关于框架的东西,因为大多数企业现在都是用的SSH框架,所以我想把框架复习一下,我真的没有想到一个程序猿不经常敲代码会变成一个手残党,我真的很伤心,但是我觉得那些都不是事,只要努力,因为有底子,相信很快能找回感觉,同时还可以让基础更加扎实!首先在了解SpringMvc前你要了解什么是MVC,我想只要能找到这篇博客的童鞋,多多少少会有所了解!那么我们来说一下什么是Sp
摘要由CSDN通过智能技术生成
1、引言

今天写一点关于框架的东西,因为大多数企业现在都是用的SSH框架,所以我想把框架复习一下,我真的没有想到一个程序猿不经常敲代码会变成一个手残党,我真的很伤心,但是我觉得那些都不是事,只要努力,因为有底子,相信很快能找回感觉,同时还可以让基础更加扎实!

首先在了解SpringMvc前你要了解什么是MVC,我想只要能找到这篇博客的童鞋,多多少少会有所了解!

那么我们来说一下什么是SpringMVC:

SpringMVC是基于java实现了webMVC设计模式的请求驱动类型轻量级框架!前面的这一句话我们得到了很多信息1实现了MVC设计模式,2请求驱动类型的框架,3他是轻量级,那么往往伴随着这几个名词的,那么他出现的目的就是能简便开发,将一些功能进行了解耦,总之就是逼哥大大,功能强大!

优点:

进行更加简洁的web层开发

天生可以和spring集成

支持灵活的URL映射

可以很方便灵活的和其他视图技术集成(如FREEMARKER)

提供了方便的数据验证机制

提供了强大的jsp标签库

对静态资源支持

以上就是我所知道的优点,如果大家还有什么要补充的,就在评论里面猛戳!

2、SpringMVC请求处理流程!

其实,有时候理解一个技术的流程你可以把它想成记录公司的报销流程,这样你就可以更用心的记住,其实有时候面对那些生涩难懂的ABC我也有点无奈,谁让自己木有好好上学,英文那么差呢?不过没关系,只要理解他的思想就行下面就请欣赏我找的图片吧

上面就是就是他完整的一个流程!

好了上面是的我们很容易能理解的一个流程,下面我们看一下官方的一个架构和流程


两张图我们可以看出他的2个特点

1.所有的流程都要经过dispatcherServlet(前端控制器)

2.springMVC它是基于servlet完成的(所以这里面一定将我们的servlet进行了封装,里面一定和servlet有很多共同的地方,所以为了更好的理解我们有时间去扎实一下servlet的基础)

既然知道了它是基于dispatcherServlet完成的所有调度,那么我们来看一下他的源码,毕竟他是开源的不得不再一次感谢那些致力于OpenSource的大牛们,他们让我们的开发更加简便,门坎更低谢谢他们!

    //前端控制器分派方法  
    protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception {  
            HttpServletRequest processedRequest = request;  
            HandlerExecutionChain mappedHandler = null;  
            int interceptorIndex = -1;  
      
            try {  
                ModelAndView mv;  
                boolean errorView = false;  
      
                try {  
                       //检查是否是请求是否是multipart(如文件上传),如果是将通过MultipartResolver解析  
                    processedRequest = checkMultipart(request);  
                       //步骤2、请求到处理器(页面控制器)的映射,通过HandlerMapping进行映射  
                    mappedHandler = getHandler(processedRequest, false);  
                    if (mappedHandler == null || mappedHandler.getHandler() == null) {  
                        noHandlerFound(processedRequest, response);  
                        return;  
                    }  
                       //步骤3、处理器适配,即将我们的处理器包装成相应的适配器(从而支持多种类型的处理器)  
                    HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler());  
      
                      // 304 Not Modi
  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值