仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1884|回复: 20
打印 上一主题 下一主题

[学习教程] JAVA编程:spring中DispatcherServlet的运转机制

[复制链接]
逍遥一派 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:52:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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的开发并没有必然的关系,也不见得在所以情况下,别人使用起来会简单。
小妖女 该用户已被删除
沙发
发表于 2015-1-21 16:36:27 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
活着的死人 该用户已被删除
板凳
发表于 2015-1-30 21:11:33 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
柔情似水 该用户已被删除
地板
发表于 2015-2-1 17:09:20 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
简单生活 该用户已被删除
5#
发表于 2015-2-2 21:58:20 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
再现理想 该用户已被删除
6#
发表于 2015-2-8 08:24:58 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
蒙在股里 该用户已被删除
7#
发表于 2015-2-13 23:17:41 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
冷月葬花魂 该用户已被删除
8#
发表于 2015-2-26 10:53:39 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
9#
发表于 2015-3-8 13:43:12 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
愤怒的大鸟 该用户已被删除
10#
发表于 2015-3-11 18:57:36 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
若天明 该用户已被删除
11#
发表于 2015-3-17 00:15:01 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
小魔女 该用户已被删除
12#
发表于 2015-3-23 08:57:28 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
精灵巫婆 该用户已被删除
13#
发表于 2015-3-25 05:53:50 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
灵魂腐蚀 该用户已被删除
14#
发表于 2015-3-25 13:45:11 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
山那边是海 该用户已被删除
15#
发表于 2015-4-1 12:08:48 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
谁可相欹 该用户已被删除
16#
发表于 2015-4-2 11:41:37 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
逍遥一派 该用户已被删除
17#
 楼主| 发表于 2015-4-7 07:49:38 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
莫相离 该用户已被删除
18#
发表于 2015-4-14 11:58:48 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
不帅 该用户已被删除
19#
发表于 2015-4-22 20:45:00 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
再见西城 该用户已被删除
20#
发表于 2015-4-27 01:15:38 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-5 04:05

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表