asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" PageSize="10"
Width="542px" AllowPaging="True" AllowSorting="True"
DataKeyNames="DB31_1,DB31_2" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing" OnRowUpdat ...
- 10:33
- 浏览 (52)
- 评论 (0)
Web 2.0 站点扩展性问题随感
作者: Fenng | 可以转载, 转载时务必以超链接形式标明文章原始出处和作者信息及版权声明
网址: http://www.dbanotes.net/review/web_20_scalibility.html
最新一期《程序员》杂志上有篇《Web 2.0 构建要素》的文章,里面描述了一些 Web 2.0 的扩展性问题,这可能也是 Web 2.0 站点从小到大必须承受的苦恼。该文简单介绍了有些站点通过 Amazon S3 服务来解决存储扩展带来的压力。有些站点则必须自己动手构建最适合自身业务的技术方案。
很多比较成功的站点,有的时候会透露出一些关于站点 ...
- 11:30
- 浏览 (67)
- 评论 (0)
闲谈 Web 图片服务器
作者: Fenng | 可以转载, 转载时务必以超链接形式标明文章原始出处和作者信息及版权声明
网址: http://www.dbanotes.net/web/web_image_server.html
现在很多中小网站(尤其是 Web 2.0 站点) 都允许用户上传图片,如果前期没有很好的规划,那么随着图片文件的增多,无论是管理还是性能上都带来很多问题。就自己的一点理解,抛砖引玉,以期能引出更具价值的信息。
事关图片的存储
把图片存储到什么介质上? 如果有足够的资金购买专用的图片服务器硬件或者 NAS 设备,那么简单的很;如果有能力自己开发单独存储图片的文件系统 ...
- 11:27
- 浏览 (110)
- 评论 (0)
3.7.2验证元数据(ValidationMetadata) 如何处理actionbean中的属性的annotation的验证是一个值得考虑的问题。在stripes1.5以前所有的验证的annotation都在DefaultActionBeanPropertyBinder中实现。这样就会有一些问题,比如stripes框架的annotation验证处理不能满足系统的业务需求,那么就要扩展stripes的annotation验证处理,在1.5以前是处理不了的,还有一个问题,就是我们的annotation的验证是静态,有可能在系统运行中会根据一些特殊的情况进行调整(对于同一个事件,在某些情况有的验证 ...
- 15:31
- 浏览 (93)
- 评论 (0)
3.7捆绑和验证。
找到actionbean,又找到处理方法,接下应该是执行处理方法,等一等,仔细想一下,处理方法要处理什么东西,处理是要处理用户用表单传进来的数据。那么就是说先要把数据传进来,在structs中,采用formbean做为接受数据的bean。而stripes采用actionbean的属性做为接受数据。因为接收的数据都是有一定的相关性,比如:user.name,user.sex等。既然在业务层采用User等做为PO,那么能不能就直接传到User中去呢,如果这样就有一些问题,比如采用User作为actionbean的一个属性,那么如何把数据传到属性对象的属性中,每个属性都有可能是P ...
- 15:25
- 浏览 (69)
- 评论 (0)
找到actionbean类,并建立了路径与类的对应关系,建立了类与类的处理事件方法的map关系,现在要找的就是 resolveHandler。怎么解析呢?DispatchHelper类的resolveHandler(final ExecutionContext ctx)就是做这项工作的。它首先通过 String eventName = resolver.getEventName(bean.getClass(), context);从actionbean类和ExcuteContext取得事件名。public String getEventName(Class<? extends ...
- 15:24
- 浏览 (64)
- 评论 (0)
3.5解析ActionResolver 我们已经了解stripes的生命周期,如何通过配置把可配置的组件组合在一起,又了解了如何通过interceptor把这些组件串起来。现在我们应该了解每步每个组件都做了什么,首先我们要了解是ActionResolver,也就stripes如何通过url path去映射到相对应的action。在DispatcherServlet中第一步生命阶段就是resolveActionBean(ctx);这个方法的主体在:DispatcherHelper.java中: public static Resolution resolveActionBean(final Ex ...
上面的我们看到stripes通过配置文件把框架的大部分功能组件组合在一起,组合在一起,那么怎么有序运行呢?同时不能失去框架的扩展性,不能就顺序执行组件吧,现在的流行的框架都是采用IOC容器来组合这些组件,像structs2采用xwork IOC容器,tapestry5现在采用spring IOC容器。IOC(控制反转)实际上就是拦截器。在servlet Filter中,我们应该知道什么是拦截器吧。Stripes是框架,不能没有扩展性,但stripes又不想弄得太复杂。没有像别的框架借助于别的IOC容器。Stripes实现了一个小的拦截器子系统,6个LifecycleStage在拦截器子系统中执 ...
3.3stripes配置
3.3.1闲话配置
说到配置文件,先扯几句,笔者在和朋友聊.net技术,发现.net世界有一种趋势,什么都喜欢用web.config配置文件,而java世界正相反,在反对配置文件。孔子说过:过犹不及。Java用配置文件用过了。而stripnate它的反配置也过度,把Hibernate.cfg.xml中配置也放在web.xml中,结果会形成一个巨大的web.xml文件,又形成了structs-config.xml文件那样。.net世界什么配置都放在web.config中。也会导致这个结果。任何事情都有一个度。
在上一章中们也可以看到Stripes的配置很简单,除 ...
3.2.3 Stripes DispatcherServlet的处理Filter只是拉开生命周期的序幕,真正的的生活周期处理应该是对action的操作和处理,也就是说重头戏还在DispatcherServlet之中呢。在DispatcherServlet要解决请求的action和程序员实现的action的对应。还有如何找到事件处理方法,如何把数据传入/回传(repopulate)actionbean中,处理验证,处理类型转换(stripes中类型和验证是结合在一起的)、拦截处理等等。Stripes把这个周期分成六段: ActionBeanResolution(解析acio ...







评论排行榜