|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
再说说缺点:首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。servlet
Spring中DispatcherServlet的运转机制
DispatcherServlet是spring的web框架(以下简称SpringWeb)中的中心servlet."Spring的web框架——象别的web框架一样——是一个哀求驱动的web框架,其计划环绕一个能将哀求分发到把持器的servlet,它也供应别的功效匡助web使用开辟。"----《SpringFramework开辟参考手册(中文版)》而在SpringWeb框架中这个servlet就是org.springframework.web.servlet.DispatcherServlet。这个Servlet的承继干系以下图所示:SpringWeb起首将传统的HttpServlet笼统类包装成了Bean;FrameworkServlet笼统出了web框架中的servlets的一些基础举动,好比对applicationcontext的会见;DispatcherServlet的次要事情就是将一个request分发到一个符合的处置器上,并将处置前往的ModelAndView绘制出来前往给客户端。
DispatcherServlet作为一个Servlet那他必定有两个次要的办法:init()和doService()。
一init()初始化。DispatcherServlet承继系统中init()办法的完成位于HttpServletBean中,HttpServletBean起首挪用initBeanWrapper(),初始化BeanWrapper,然后挪用笼统办法initServletBean(),这个办法的完成位于他的子类FrameworkServlet中;FramewordServlet中的initServletBean()办法将挪用initWebApplicationContext(),初始化WebApplicationContext,然后一样挪用他的笼统办法initFrameworkServlet(),而这个笼统办法的完成位于终极的DispatcherServlet中;DispatcherServlet中的initFrameworkServet()将顺次初始化Multipar(用作文件上传)剖析器、当地化信息剖析器、主题剖析器处置器映照等等外容。以是DispatcherServlet的初始化按次为init();initBeanWrapper();
initServletBeaninitWebApplicationContext()
initFramework();initMultipartResolver();initLocaleResolver();initThemeResolver();initHandlerMappings();initHandlerAdapters();initHandlerExceptionResolvers();initViewResolvers();
二doService()处置哀求。DispatcherServlet中不管是经由过程post体例仍是get体例提交的request,终极城市交由doService()处置。doService()中的处置逻辑大抵分以下六个步骤:1.if(request是MultiPart,即文件上传)则将request剖析并包装成MultipartHttpServletRequest2.mappedHandler=getHandler(request)依据request失掉响应的处置器3.挪用注册的一切拦阻器的preHandle办法4.挪用处置器HandlerAdapterha=newgetHandlerAdapter(mappedHandler.getHandler());ModelAndViewmv=ha.handle(req,res,mappedHandler.getHandler())//这里利用了adapter形式5.挪用注册的一切拦阻器的postHandle办法6.绘制mv
大概Spring不像Struts、hibernate那样是利用最为普遍的,但他是周全的、轻量级的、充足天真的、简单交换、简单扩大的。SpringWeb是SpringFramework中的一个部分,而DispatcherServlet又是SpringWeb中的一小部分,要弄懂Spring和他面前的计划头脑,对我等菜鸟而言,仍是有很长一段路要走的。希望在新的一条路呈现之前,我们已走遍了这条路。路漫漫其修远兮,吾将高低而求索。持续研讨ing...tobecontinue...
参考材料Spring官方网站http://www.springframework.org/SpringAPIhttp://www.springframework.org/docs/api/index.htmlSpringReferenceDocumentationhttp://www.springframework.org/docs/reference/index.htmlSpringFramework开辟参考手册(中文版)http://www.jactiongroup.net/reference/html/index.html
他们对jsp,servlet,javabean进行封装就是为了展示他们的某个思想,与java的开发并没有必然的关系,也不见得在所以情况下,别人使用起来会简单。 |
|