-
MVC 是开发web application 的通用架构 方式。在 Java,Python都有使用。
查看全部 -
maven 很好了解放了处理繁琐依赖关系的工作
查看全部 -
<mirror>
<id>UK</id>
<name>UK Central</ name>
<url>http :// uk.maven. org/maven2</ url><mirrorOf>central</mirrorOf>
</mirror>
查看全部 -
前端控制器拦截到了一个请求,通过处理器映射器找到对应的控制器,映射器找到了控制器和控制器拦截器,形成一条执行链,前端控制器通过处理器适配器拿到控制器返回的结果,然后把结果交给视图解析器解析,生成视图,最后响应给前端。
查看全部 -
DispatcherServlet前端控制器
HandlerAdapter处理器适配器
HandlerIntercept处理器拦截器(是一个借口,有三个实现,preHandle、afterCompletion、postHandle)
HandlerMapping处理器映射器、
HandlerExecutionChain处理器执行链
执行链:preHandle——>Controller method——>postHandle——>afterCompletion
ModelAndView模型视图,也可以用Model和Map,但是都会被转化为ModelAndView
ViewResolver视图解析器
View 用于呈现页面
查看全部 -
ModelAndView
查看全部 -
模型 视图 控制
查看全部 -
MVC本质
查看全部 -
Spring MVC
查看全部 -
前端控制器--》具体controller-->前端扣工资器-->viewtemplate
查看全部 -
MVC(Model-View-Controller)
MVC定义:程序分层,分工合作,既相互独立,又协同工作。
View:视图层,为用户提供UI重点关注数据的呈现。
Model:模型层,业务数据的信息表示,关注支撑业务的信息构成,通常是多个业务实体的组合。
Controller:控制层,调用业务逻辑产生合适的数据(Model)传递数据给视图层用于呈现。
查看全部 -
SpringMVC的静态概念
DispatcherServlet:它就相当于SpringMVC的前端控制器(Front Controller),前端用户的请求通过DispatcherServlet进行了分发,到达相应的Controller,来生产需要的业务数据Model,Model再通过DispatcherServlet传递给View完成最终页面呈现。
HandlerAdapter:适配器模式,将各种不同类型的HandlerAdapter适配成DispatcherServlet可以使用的HandlerAdapter,它是在DispatcherServlet内部使用的一个类,DispatcherServlet通过它可以找到Controller,SpringMVC中并没有一个接口叫做Controller,但是有一个annotation标签,该标签可以识别一个Controller。
HandlerInterceptor:拦截器,他是一个接口,拥有三个方法,如果Controller实现该接口,就可以调用Controller之前,调用之后,以及最终Model发送到页面可以做一些事情。
HandlerMapping:Handler是DispatcherServlet调用Controller中间过渡的一种对象,Mapping是DispatcherServlet与Controller映射关系的一种类,所以它就是请求到达DispatcherServlet,哪一个Controller来响应该请求,并且他也会对HandlerInterceptor进行管理,也就是它工作完后,会返回一个HandlerAdapter给DispatcherServlet。
HandlerExecutionChain:HandlerMapping返回的对象(包含HandlerAdapter、HandlerInterceptor),它们之间构成了一条执行链条,首先执行HandlerInterceptor的preHandle方法,然后调用Controller里的某个业务方法,再执行postHandle方法,再执afterCompletion方法,这里用到了反射机制(reflect)。
ModelAndView:可以使用SpringMVC中提供的Model类也可以使用java中提供的Map类的表现形式,但是DispatcherServlet最终都会把它转换为ModelAndView,所以在这里可以表现为Model的具体表现。
ViewResolver:视图解析器,可以通知DispatcherServlet使用哪一个视图,来进行视图的呈现,作用就是根据配置,找出需要的视图对象。
View:负责呈现页面,比如Jsp、JSTL等。
查看全部 -
Spring MVC的动态概念:DispatcherServlet基于核心的地位,连接View和Controller,访问过程——>用户通过浏览器发送请求通过服务器被DispatcherServlet拦截到,DispatcherServlet通过HandlerMapping找到适配的Controller,这里是通过annotation来找到指定Controller,并且找到HandlerInterceptor,也就是执行Controller的业务逻辑之前,执行一些方法,这就形成了HandlerExecutionChain执行链条,并且HandlerMapping会返回一个对象给DispatcherServlet,该对象包括(HandlerAdapter、HandlerInterceptor),并且Controller会生成ModelAndView返回给DispatcherServlet,但是DispatcherServlet不能确定显示哪个视图,这里通过ViewResolver的方法返回View对象,数据被传递给View进行呈现,这时就可以看到呈现的页面了。
查看全部 -
Maven的配置文件settings进行修改
Maven的配置文件:Maven目录下的conf——>settings,在HOME目录下有个.m2的文件夹,如果仅仅是刚安装Maven,而没有运行Maven的任何命令,那么可能无法看见这个目录,一可以手动创建这个目录,二可以运行某个Maven命令之后,将settings复制到.m2文件夹下,并对其修改,将settings赋值到.m2进行修改的原因是可能对Maven的版本进行升级,这样就不用每次对该文件进行修改。
修改1:<localRepository>路径</localRepository>它为可选项,如果不对它进行配置,它的默认路径软件库会安装到${user.home}/.m2/repository下,如果想把它放在其他位置,就修改路径。
修改2:镜像<mirrors>Maven的核心仓库,官方推荐使用英国的一个镜像,配置这个镜像,每次访问Maven,都会到这个库进行下载我们需要的软件包,降低了中心仓库的负载,中心仓库为了避免造成太大访问量造成服务器的运行问题,有时会拒绝我们的访问,所以通过指向英国的镜像,访问的成功率会有所提升。
查看全部 -
使用Maven创建Spring MVC的环境(将在命令行创建好的Maven项目导入)
问题:项目的build path里Order and Export发现目录缺失,可以手动添加缺失的目录,根据目录的缺少情况。
【一】pom配置
第一项配置:jar包版本配置——如果工程依赖比较复杂、且比较大的情况下,可以添加标签来设置需要用到的jar包版本,这样就可以清晰的理解我们所使用的依赖软件包的版本。
第二项目配置:引用jar包版本配置——依赖管理是Maven中比较核心的配置,因为Maven可以管理一些传递的依赖,比如SpirngMVC依赖了Spring的包,而Hibernate也用到了Spring的包,当这两个依赖Spring版本不一样的时候,依赖管理就发生了作用,依赖管理可以使用指定版本的Spring,这里是4.1.3.RELEASE版本,该项目中所依赖的Spring文件都将以该版本为例。
第三项配置:依赖管理——Maven提供依赖管理,项目所依赖的jar包都存在<dependencies>标签里,可以为我们构建任意多个依赖的软件包,因为在 <properties>指明了Spring所有相关的版本,所以<dependencies><dependency>就不需要指明它的版本了。
第四项配置:插件配置——提供了额外功能,比如jetty,可以用它来测试和部署,但是和项目本身应用没有很大关联。
【二】web.xml配置
将DispatcherServlet配置到Web环境:通过<servlet>和<servlet-mapping>标签,这里最关键的属性是<servlet-name>,该标签的name可以自定义,但它关系到默认的配置文件,如果不做任何其它配置(比如init-param),Spring就将在默认位置,默认的文件名来加载SpringMVC的配置文件(Spring会默认加载WEB-IN下的mvc-dispatcher-servlet.xml),如下图蓝色字体,也可以通过<init-param>改变该参数,所以要在WEB-INF创建configs——>spring,并在spring文件夹下创建DispatcherServlet创建它对应的上下文环境。
【三】SpringMVC配置文件(mvc-dispatcher-servlet.xml)
第一项配置:Spring的applicationContext激活对标签支持的一些生命周期的管理,所以它可以识别用标签配置的Bean的声明。
第二项配置:DispatcherServlet上下文里只搜索带有@Controller标注的类,SpringMVC让控制器(Controller)和请求之间发生联系,并且做一些相应的操作
第三项配置:DispatherServlet启用基于annotation的HandlerMapping,通过如下图完成
第四项配置:配置ViewResolver,通过它通知DispatcherServlet分发给那个View,只需要配置一个前缀和一个后缀,就可以将这些东西拼接成某个JSP文件,这里存放JSP文件是在WEB-INF/jsps文件夹下,所以要创建该文件夹。
Controller类的编写:名为HelloMvcController,并且包必须在管理Controller标签路径里,并且让Spring知道这是一个Controller所以需要在类上添加@Controller,并且通知SpringMVC映射到哪一个URL路径,通过@RequestMapping(/hello")拦截根目录下的hello,并且编写一个方法返回一个字符串,并在方法上添加注解@RequestMapping("/mvc")如图。
该Controller会响应host:8080/hello/mvc的一个url,这就是SpirngMVC运行的方式,请求和Controller之间的映射,它就会返回到home.jsp,所以在jsps中创建home.jsp。
命令行中:进入项目的目录,查看目录中是否有pom,输入mvn jetty:run,提供一个运行的容器环境,运行后maven就会解析所有的依赖等等,当看到Start Jetty Server说明Maven已经成功启动了,这里使用了默认的端口号8080,浏览器访问:http://localhost:8080/hello/mvc,结果就会跳转到相应页面。
拓展:使用Eclipse导入项目时遇到No projects are found to import提示的解决办法https://blog.csdn.net/ancientear/article/details/86772425。
查看全部
举报