`
Mojarra
  • 浏览: 131573 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论
文章列表
白话MVC(二) 在Struts的过滤器中,经过调用PrepareOperations.createActionContext(Request, Response)函数后,一个ActionContext对象被创建了,与Action有关的数据全部放在了ActionContext中,有些地方仍然使用HttpRequestServlet.getAttribute(String)这个函数取值,所以struts框架包装HttpRequestServlet,覆盖此函数,使它能从ActionContext中取值,譬如说:取ValueStack的值,它的key是"com.opensymphony.x ...
白话MVC(一)                                                                                                                    白话MVC(三)   在第一篇中,花了主要篇幅探讨了MVC框架中对于编写Model层 ...
白话MVC(二) 最近在带一“徒弟”,领悟能力很高,对我的能力也提出了新的要求,在“带”的过程中,发现了一有趣的现象,很多东西会用,但是要想用清楚的语言把这些技术描述出来,还是很有难度的。特别是在讲Spring框架的使用,不少知识点的使用已经和学校课本上所教的东西脱节,“徒弟”理解起某些概念起来感到比较陌生。我也不想告诉他,这东西就是这么用的,按照这样的写法去写代码,就能实现模块功能。在我看来,程序代表的是心中的想法,对程序员来说,程序是心中想法的最终实现,有必要对一些概念的产生及作用做进一步的探讨。 在探讨的过程中,发现其实对自己一些概念上的认识也很有提高。好,开头写到这里 ...
fastupload 0.31版本上周已经发布,因为工作的关系,只到今天才有点时间来写一些0.31版本中深层次的东西。fastupload以前的版本,尽管在性能上取得了不小的进步,但只支持解析文件,不支持解析非文件的内容,因为HttpFileUploadParser这个类来解析ServletRequest的输入流的过程中,忽略非文件的请求数据。举个列子来说,假如表单中有两个input标签,一个是文本输入控件,一个是文件输入控件,经过HttpFileUploadParser解析后,只会把文件类型请求的数据保存在指定的目录下。   在fastupload项目编写之初,考虑的是如何把文件类型请求的 ...
fastupload根据RFC 1867文档规范,编写的基于表单文件上传的组件,支持表单多文件上传,二进制文件与文本文件分开处理,彻底解决上传文本文 件编码问题,支持文件上传大小限制,支持文件上传进度计算,api接口简明,比Apache Co ...
前天发布了fastupload 0.2.3,没想到受到了大家的关注,下载量急剧上升。首先说明一下,写fastupload纯粹是个业余爱好,拿出来几行好的代码与大家分享,后来测试了一下,确实比Apache上的common file upload要快很多。放出来两组测试数据与测试代码,限于时间与水平关系,这里不做分析与评价,只看具体数据。 测试环境还是本人的小笔记本,与第一回里测试里所用的是一模一样的,测试代码有兴趣的可以从文后的附件中下载,有兴趣的读者可以亲自测试一下。 第一组,上传三个图片,分别是348k、331k、368k,fastupload的测试结果如下 //单位 ms cost ...
fastupload 0.2.3发布,增加了对sub-boundary的支持,修复了一个在0.1.1版本中发现的可能因为数据块末尾不包含完整上传文件信息的bug,新增加类,HttpFileUploadParser,担负文件上传的解析工作,原类FileUploadParser不再承担解析Http文件的功能。 新的api使用如下, @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //创建Dis ...
RFC1867规范中,对表单上传文件的大小和进度都没有作出规定,W3C的HTML规范的FileUpload对象(<input type="file"> 标签每出现一次,一个 FileUpload 对象就会被创建)也没有对表单中的文件大小作出限制,因此,这个问题还是留给了WEB应用服务器端开发人员。 HTTP请求提交到服务器端后,在未解析各boundary中的文件内容之前,是可以知道这次HTTP请求的总长度的,但是考虑到一个表单内可以容纳多个FileUpload对象,所以,只要发现解析的两个boundary内的字节数超过指定的数量,立即抛出一个运行期异常Thresh ...
文件上传的秘密系列之一, http://mojarra.iteye.com/blog/1412497   文件上传的秘密系列之二, http://mojarra.iteye.com/blog/1534821   对照著名的Apache Common File Upload这个组件, 做一下对比。选取两组文件,每组文件各包含三张照片。 第一组中三张照片的大小是,1.7M、1.7M、1.2M 第二组中三张照片的大小是,574K、588K、384K。 每组文件分别上传20次。计时每次接收文件所用的时间,单位ms.   测试的环境就是本机,配置为i5 2.3G/内存4G/硬盘5400转 ...
  到此 ,我 们 已 经实现 了表 单 文件上 传 的功能,解析后的文件以二 进 制的方式写入到文件系 统 里。但是,有点小小 遗 憾, 请求发送到服务器端后,服务器并不知道请求是以何种字符集进行编码的。这不是一个技术问题,而是整个软件行业中对字符集的编码与转化缺乏一个统一的标准。因此,这个问题留给了开发人员,告诉浏览器,以何种字符集进行编码、在服务器端以何种字符集进行解码。 如果开发人员没有告诉编码,浏览器将以 iso-8859-1作为默认编码。 开发人员告诉浏览器编码后,浏览器根据两个 boundary内的 MIME数据,决定是 ...
单元是逻辑上的,单元这词还真不好拿一个比较准确的句子去概述,在实际的代码编写过程中,究竟怎么划分单元,是一个很有意思的问题,拿一个DAO的编写来探讨。   写一个DAO的时候,先写接口,再写实现类,程序员基本是 ...
RFC1867文档对WEB表单上传文件做了详细的描述,但J2EE的Servlet规范中却没有针对此功能规定一个API,没有接口也没有抽象类,更不要说一个具体类了。幸好,著名的开源组织Apache的官网上有一个Common File Upload这个项目,给广大的J2EE开发者解决了这个比较麻烦的问题。会用Common File Upload这个开源组件解决表单文件上传问题是一回事,能知道这个组件的优缺点是另外一回事,如果能知道RFC1867文档中对于表单上传文件的规定、并实现文件上传的功能,是另外一回事。 干嘛干嘛,你这不是闲的蛋疼嘛,有现成的轮子不用,非要再造一个相同的轮子呢?听起来 ...
前几天在论坛里看到一个帖子说百度的一道面试题,两个文件里各约有两亿行数据,每行只有一个数字,问如何求两个文件中数据的交集。   最近对大数据的处理比较感兴趣,所有思考了一下这个问题,对于JVM来说,两亿数据是非常多的,直接用数组来处理,是行不通的,另外,两亿的数据,效率也是一个重要的考量度。本来可以借助Hash的方法来解决这个问题,但因为每行只有一个数据,也就是只有数字0~9, 那么可以采用一个简便的方法,读取文件中的数字,假如是1, 那么给一个int数组的第1位加1,其他的数字如此类推,假如是2,给这个int数组的第2位加1, 直到所有的数据读取完毕。另外一个文件也采用相同的方法,最后,比 ...
  Restore View Phase 当点 击 超 链 接或者表 单 按 钮 , JSF 请 求被 创 建, JSF 实现 框架开始 Restore View 阶 段。 这 个 阶 段中, JSF 实现 框架 为页面 打造 视图 ,在 视图 中 组 装事件 处 理器和校 验 器,保存 这 个 视图 到 FacesContext 实 例之中。 FacesContext 实 例包含所有的需要被 单 个 请 求 处 理的信息。所有的 组 件 标签 ,事件 处
JSF 页 面的生命周期 类 似于 JSP 页 面。当客 户 端 为页 面 创见 一个 HTTP 请 求 时 ,服 务 器端响 应这个页面并翻译 HTML 。因 为 JSF 提供了 额 外功能,因此,生命周期提供了一些 额 外的服 务 去 处 理 页 面。 作 为 开 发 人 员,除了 需要知道 生命周期过程中中,比如什么时候对进行数据校验、数据转换和事件发生时刻这些外,还可能需要知道这些能做什么;如何改变这些的处理方式和时间。 一个树形的 UI组件描述 ...
Global site tag (gtag.js) - Google Analytics