Velocity总体架构 JJTree渲染过程解析 事件处理机制 常用优化技巧 与JSP比较 设计模式解析之合成模式 设计模式解析之解释器模式…
在MVC开发模式下,View离不开模板引擎,在Java语言中模板引擎使用得最多是JSP.Velocity和FreeMarker,在MVC编程开发模式中,必不可少的一个部分是V的部分.V负责前端的页面展示,也就是负责生产最终的HTML,V部分通常会对应一个编码引擎,当前众多的MVC框架都已经可以将V部分独立开来,可以与众多的模板引擎集成. Velocity总体架构 从代码结构上看,Velocity主要分为app.context.runtime和一些辅助util几个部分. APP模块 其中app主要…
9.1 从Servlet容器说起    Servlet容器:Jetty, Tomcat等. 这里以Tomcat为例,  真正管理Servlet的容器是Context容器,一个Context对应一个WEB工程.context容器管理Servlet在容器中的包装类Wrapper,所以Context容器如何运行直接影响Servlet的工作方式, 9..1.1 Servlet容器的启动过程 如何启动Tomcat: 启动类org.apache.catalina.startup.Tomcat,创建一个实例对…
从 Servlet容器说起 创建 Servlet实例 Servlet体系结构 Servlet如何工作 Servlet中的Listener Filter如何工作 Servlet中的url-pattern…
有关其它已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或訪问:http://gradledoc.qiniudn.com/1.12/userguide/userguide.html 本文原创.转载请注明出处:http://blog.csdn.net/maosidiaoxian/article/details/41113353 关于我对Gradle的翻译,以Github上的项目及http://gradledoc.qin…
<HTTP 权威指南>笔记:第十六章 国际化 客户端通过在请求报文中的 Accept-Language 首部和 Accept-Charset 首部来告知服务器:“我理解这些语言.”服务器通过 Content-type 首部中的 charset 参数和 Content-Language 来告知客户端文件可用的字母表和语言.两者进行协商,得到最佳的结果. MIME charset 术语 字符编码方案:将二进制代码转化为字符代码字符集:将字符代码转换为字符MIME 字符集:是将特定的编码方案和特定的…
第一章    概论 “软件团队要从需求分析开始,把合适的需求梳理出来,然后逐步开展后续工作”:——p3 问题:好的用户体验要从软件分析开始,那么软件分析仅仅是从用户的需求出发吗? 我的看法:需求分析是软件开发的基础阶段,“一个软件有人买就得找到顾客,顾客有各种需求,有些靠谱有些不靠谱.软件团队要从需求分析开始,把合适的需求梳理出来”,那么问题来了,仅仅从用户的需求出发就能写出非常成功的软件了吗?举一个常见的例子,网购.网购出现之前,人们是没有网购需求的,世界上第一个购物网站是美国的ebay网,早…
前言 讲解了日志相关的知识点后.今天来点相对简单的,一般上,我们在开发一些注册功能.发送验证码或者订单服务时,都会通过短信或者邮件的方式通知消费者,注册或者订单的相关信息.而且基本上邮件的内容都是模版,一些差异化的可根据实际情况来进行替换.比如12306购票成功后,会发送一封购票信息邮件:在京东下单成功后,也会收到一封包含订单的邮件.所以,今天就来讲讲如何利用Spring提供的JavaMailSender接口,实现邮件发送功能. 一点知识 SpringBoot集成 纯文本格式 附件格式 HTML…
线程有时称为轻权进程(lightweight process) 同一进程内的所有线程共享相同的全局内存.这使得线程之间易于共享信息,然后这样也会带来同步的问题 同一进程内的所有线程处理共享全局变量外还共享: 1.进程指令 2.大多数数据 3.打开的文件(即描述符) 4.信号处理函数和信号处置 5.当前工作目录 6.用户ID和组ID 不过每个线程有各自的: 1.线程ID 2.寄存器集合,包括程序计数器和栈指针 3.栈(用于存放局部变量和返回地址) 4.errno 5.信号掩码 6.优先级 基本线程…