jmatrix  介绍 matrix.org.cn
目  录 <ul><li>历史与定位 </li></ul><ul><li>功能简介 </li></ul><ul><li>技术架构 </li></ul><ul><li>技术点探讨 </li></ul><ul><li>未来 </li></ul>
Jmatrix  由来与定位 <ul><li>Matrix 网站的历史原因 : ASP 系统 </li></ul><ul><li>Java  开源的网站系统里没有合适的 </li></ul><ul><li>网站全站系统 </li></ul><u...
jmatrix  历史 <ul><li>Matrix  网站  2003.6  成立,原来是  CS  网站 </li></ul><ul><li>2003.9-2004.9  大家在讨论甚至开始写了点需求,来做 JSP 全站系统。未果 </li...
目  录 <ul><li>历史与定位 </li></ul><ul><li>功能简介 </li></ul><ul><li>技术架构 </li></ul><ul><li>技术点探讨 </li></ul><ul><li>未来 </li></ul>
功能简介 <ul><li>论坛 Forum  (分类、嵌套) </li></ul><ul><li>新闻 News </li></ul><ul><li>文章 Article </li></ul><ul><li>资源 Resource (Downl...
目  录 <ul><li>历史与定位 </li></ul><ul><li>功能简介 </li></ul><ul><li>技术架构 </li></ul><ul><li>技术点探讨 </li></ul><ul><li>未来 </li></ul>
技术架构 <ul><li>Database mysql/hsqldb/derby </li></ul><ul><li>Persistence ibatis (cache) </li></ul><ul><li>Business spring </...
目  录 <ul><li>历史与定位 </li></ul><ul><li>功能简介 </li></ul><ul><li>技术架构 </li></ul><ul><li>技术点探讨 </li></ul><ul><li>未来 </li></ul>
技术点探讨 <ul><li>Spring 的使用 : config/transaction </li></ul><ul><li>双通问题的解决: AOP+JMS </li></ul><ul><li>DWR  验证 : bean validato...
Spring  的使用
Spring  的使用 2
双通问题 <ul><li>中国特定历史时期的特定问题 </li></ul><ul><li>Mysql repl  连接不能保证 </li></ul><ul><li>Service 方法: JMS + AOP </li></ul><ul><li>...
双通问题 2 <ul><li>public   class  JmsRemoteServiceInvokeAdvice  implements  MethodBeforeAdvice { </li></ul><ul><li>… .. </li>...
DWR  验证 <ul><li>提供  js  写代码调用验证,是不太可靠的 </li></ul><ul><li>典型的提交数据的方法,也是提交一个  bean  ,比如  Review  </li></ul><ul><li>Commons-v...
DWR  验证 2 <ul><li><servlet> </li></ul><ul><ul><li><servlet-name>dwr-invoker</servlet-name> </li></ul></ul><ul><ul><li><ser...
DWR  验证 3 <ul><li>protected  ActionErrors validate(HttpServletRequest request, String validationKey, Object validationBean...
Sitemesh  的使用 <ul><li>分析  HTML  分析结构,非常巧妙的办法 </li></ul><ul><li>只需要关注主文件, header/footer 这些通过  decorator  自动搞定 </li></ul><ul...
Sitemesh 的使用2 <ul><li><decorator name=&quot;main&quot; page=&quot;dec_main.jsp&quot;> </li></ul><ul><li><pattern>/*.shtml<...
Wiki  集成 <ul><li>Wiki Link </li></ul><ul><ul><li>[MatrixJava]  [Jmatrix]  [SUN] </li></ul></ul><ul><ul><li>发布内容时编辑者主动加上  w...
可配置 editor <ul><li>通过  spring  配置文件加载  editor  </li></ul><ul><li>指定  editor name  即处理内容时 </li></ul><ul><ul><li>不同的  proces...
可配置 editor2 <ul><li><bean id=&quot;contentProcessor&quot; class=&quot;cn.org.matrix.jmatrix.util.ContentProcessor&quot;> <...
可配置 editor3 <ul><li><html:select property=&quot;selectEditor&quot;  </li></ul><ul><li>onchange=&quot;document.forms[0].cha...
目  录 <ul><li>历史与定位 </li></ul><ul><li>功能简介 </li></ul><ul><li>技术架构 </li></ul><ul><li>几个技术点探讨 </li></ul><ul><li>未来 </li></ul>
未来 <ul><li>倾听与满足用户需求  </li></ul><ul><li>Roller Blog 集成 </li></ul><ul><ul><li>用户, group blog </li></ul></ul><ul><li>向  CMS...
<ul><li>Thank you </li></ul>
Upcoming SlideShare
Loading in...5
×

香港六合彩

1,129

Published on

大众商店门前的香港六合彩这条路是通向涧河中学的必经之路,因年香港六合彩久失修,一遇雨天,便泥泞不堪。镇政府计划了两年,不知为啥,一香港六合彩直没有实施修缮计划,这就苦了经常由此路过的中香港六合彩学生们。梅珍这天返校从家里带来的被子及一些日香港六合彩常用品一股脑儿全捆绑在自行车上,车子一遇泥泞,香港六合彩叶子板内就淤满了泥巴,怎么也没法行走。脚上的鞋子香港六合彩也沾满了泥巴。平时心高气傲的姑娘此时被弄得狼香港六合彩狈不堪。
朱亚伟二话没说,立即奔过去,把手中的那香港六合彩把油布破伞递到梅珍手中,另一只手同时伸过来,接香港六合彩过车子。梅珍见了朱亚伟,一时忍不住,竟流下了香港六合彩热泪,其娇弱之态即便是铁石心肠之人也会为之动香港六合彩容。朱亚伟也是如此,见梅珍流了眼泪,怜爱之心香港六合彩陡起,恨不能把她娇小的身体搂在自己的怀里,为她挡风遮雨。他支起自行车,从涧河香港六合彩边上的小树上折了根小树棍,弓身将自行车叶子香港六合彩板内的淤泥一点一点地掏了出来。梅珍把那把油布破伞举香港六合彩到了朱亚伟的后背上。掏完淤泥,朱亚伟将车上的被包香港六合彩解下来,让梅珍提着,再将日用品重新捆绑在车香港六合彩架上,然后扛起自行车,笑着对梅珍道:“走吧香港六合彩,大小姐

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,129
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

香港六合彩

  1. 1. jmatrix 介绍 matrix.org.cn
  2. 2. 目 录 <ul><li>历史与定位 </li></ul><ul><li>功能简介 </li></ul><ul><li>技术架构 </li></ul><ul><li>技术点探讨 </li></ul><ul><li>未来 </li></ul>
  3. 3. Jmatrix 由来与定位 <ul><li>Matrix 网站的历史原因 : ASP 系统 </li></ul><ul><li>Java 开源的网站系统里没有合适的 </li></ul><ul><li>网站全站系统 </li></ul><ul><li>基于 Java </li></ul><ul><li>开源:探索开源的方式 </li></ul>
  4. 4. jmatrix 历史 <ul><li>Matrix 网站 2003.6 成立,原来是 CS 网站 </li></ul><ul><li>2003.9-2004.9 大家在讨论甚至开始写了点需求,来做 JSP 全站系统。未果 </li></ul><ul><li>2004.9 开始 jmatrix 项目 </li></ul><ul><li>2005.4 开始测试。后补充完善并正式投入使用 </li></ul><ul><li>2005.8 经过几个月的试运行,发布 1.0 beta 版本 </li></ul><ul><li>之前一年:因为工作原因空余时间有限,没有能开源发布出来,只是不断根据 matrix 网站的需求增改功能、修订 bug 。 </li></ul><ul><li>现在:发布开源 jmatrx ,当前版本是 1.4.6 </li></ul>
  5. 5. 目 录 <ul><li>历史与定位 </li></ul><ul><li>功能简介 </li></ul><ul><li>技术架构 </li></ul><ul><li>技术点探讨 </li></ul><ul><li>未来 </li></ul>
  6. 6. 功能简介 <ul><li>论坛 Forum (分类、嵌套) </li></ul><ul><li>新闻 News </li></ul><ul><li>文章 Article </li></ul><ul><li>资源 Resource (Download Server) </li></ul><ul><li>评论 Review (Article/News/Resource) </li></ul><ul><li>通用功能 Common </li></ul><ul><ul><li>Upload/Favorate/Link/Editor/Recommend/Vote/Poll/Ipfilter/Message </li></ul></ul>
  7. 7. 目 录 <ul><li>历史与定位 </li></ul><ul><li>功能简介 </li></ul><ul><li>技术架构 </li></ul><ul><li>技术点探讨 </li></ul><ul><li>未来 </li></ul>
  8. 8. 技术架构 <ul><li>Database mysql/hsqldb/derby </li></ul><ul><li>Persistence ibatis (cache) </li></ul><ul><li>Business spring </li></ul><ul><li>Presentation struts </li></ul><ul><li>View sitemesh + JSTL + ajax </li></ul><ul><li>Sync jms </li></ul>
  9. 9. 目 录 <ul><li>历史与定位 </li></ul><ul><li>功能简介 </li></ul><ul><li>技术架构 </li></ul><ul><li>技术点探讨 </li></ul><ul><li>未来 </li></ul>
  10. 10. 技术点探讨 <ul><li>Spring 的使用 : config/transaction </li></ul><ul><li>双通问题的解决: AOP+JMS </li></ul><ul><li>DWR 验证 : bean validator </li></ul><ul><li>Sitemesh 的使用 : html/decorators </li></ul><ul><li>Wiki 集成 : wikilink / xmlrpc logon </li></ul><ul><li>可配置 editor : BBCode/FCKeditor </li></ul>
  11. 11. Spring 的使用
  12. 12. Spring 的使用 2
  13. 13. 双通问题 <ul><li>中国特定历史时期的特定问题 </li></ul><ul><li>Mysql repl 连接不能保证 </li></ul><ul><li>Service 方法: JMS + AOP </li></ul><ul><li>文件同步: WebSync 软件 </li></ul>
  14. 14. 双通问题 2 <ul><li>public class JmsRemoteServiceInvokeAdvice implements MethodBeforeAdvice { </li></ul><ul><li>… .. </li></ul><ul><li>public void before(Method method, Object[] args, Object target) throws Throwable { </li></ul><ul><li>Class[] paramType = null ; </li></ul><ul><ul><ul><li>if ( null != args) { </li></ul></ul></ul><ul><ul><ul><li>paramType = new Class[args.length]; </li></ul></ul></ul><ul><ul><ul><li>for ( int i = 0; i < args.length; i++) { </li></ul></ul></ul><ul><ul><ul><li>paramType[i] = args[i].getClass(); </li></ul></ul></ul><ul><ul><ul><li>} </li></ul></ul></ul><ul><ul><ul><li>} </li></ul></ul></ul><ul><ul><ul><li>ServiceInvokeBean methodInvoke = new ServiceInvokeBean( </li></ul></ul></ul><ul><ul><ul><li>method.getDeclaringClass().getName(), </li></ul></ul></ul><ul><ul><ul><li>method.getName(), paramType, args, ( new java.util.Date()).toString()); </li></ul></ul></ul><ul><ul><ul><li>jmsTemplate.convertAndSend(jmsQueueOut, methodInvoke); </li></ul></ul></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  15. 15. DWR 验证 <ul><li>提供 js 写代码调用验证,是不太可靠的 </li></ul><ul><li>典型的提交数据的方法,也是提交一个 bean ,比如 Review </li></ul><ul><li>Commons-validator 就是针对 bean 做验证 </li></ul><ul><li>于是借鉴下 struts 对 validator 的使用方式,对 dwr 提交数据做可配置验证,当前直接使用原来 struts 的 validator 配置文件,也输出国际化消息 </li></ul><ul><li>在 DWR 侧,也是配置到他的配置里,需要对 dwr 本身做少量的修改,认识配置文件内容 </li></ul>
  16. 16. DWR 验证 2 <ul><li><servlet> </li></ul><ul><ul><li><servlet-name>dwr-invoker</servlet-name> </li></ul></ul><ul><ul><li><servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> </li></ul></ul><ul><ul><li><init-param> </li></ul></ul><ul><ul><ul><li><param-name>debug</param-name> </li></ul></ul></ul><ul><ul><ul><li><param-value>true</param-value> </li></ul></ul></ul><ul><ul><li></init-param> </li></ul></ul><ul><ul><li><init-param> </li></ul></ul><ul><ul><ul><li><param-name>uk.ltd.getahead.dwr.ConverterManager</param-name> </li></ul></ul></ul><ul><ul><ul><li><param-value>cn.org.matrix.jmatrix.ajax.ValidatorConverterManager</param-value> </li></ul></ul></ul><ul><ul><li></init-param> </li></ul></ul><ul><li></servlet> </li></ul><ul><li><allow> </li></ul><ul><ul><li><convert converter=&quot;bean&quot; match=&quot;cn.org.matrix.jmatrix.ajax.AjaxResult&quot; /> </li></ul></ul><ul><ul><li><convert converter=&quot;bean&quot; match=&quot;cn.org.matrix.jmatrix.content.domain.Review&quot;> </li></ul></ul><ul><ul><li><param name=&quot;validator&quot; value=&quot;reviewBean&quot;></param> </li></ul></ul><ul><ul><li></convert> </li></ul></ul><ul><ul><li><convert converter=&quot;bean&quot; match=&quot;cn.org.matrix.jmatrix.common.domain.Vote&quot;></convert> </li></ul></ul><ul><ul><li><create creator=&quot;spring&quot; javascript=&quot;ContentFacade&quot;> </li></ul></ul><ul><ul><li><param name=&quot;beanName&quot; value=&quot;contentFacade&quot;/> </li></ul></ul><ul><ul><li></create> </li></ul></ul><ul><li></allow> </li></ul>
  17. 17. DWR 验证 3 <ul><li>protected ActionErrors validate(HttpServletRequest request, String validationKey, Object validationBean) { </li></ul><ul><li>ServletContext application = request.getSession().getServletContext(); </li></ul><ul><li>ActionErrors errors = new ActionErrors(); </li></ul><ul><li>Validator validator = Resources. initValidator (validationKey, </li></ul><ul><li>validationBean, application, request, errors, 1); </li></ul><ul><li>try { </li></ul><ul><li>validator.validate(); </li></ul><ul><li>} catch (ValidatorException e) { </li></ul><ul><li>log .error(e.getMessage(), e); </li></ul><ul><li>} </li></ul><ul><li>return errors; </li></ul><ul><li>} </li></ul><ul><li>String validationKey = (String) getApplication().getAttribute( </li></ul><ul><li>Globals. AJAX_VALIDATOR + &quot;_&quot; + Review. class .getName()); </li></ul><ul><li>ActionMessages actionMessages = validate(getRequest(), validationKey, review); </li></ul>
  18. 18. Sitemesh 的使用 <ul><li>分析 HTML 分析结构,非常巧妙的办法 </li></ul><ul><li>只需要关注主文件, header/footer 这些通过 decorator 自动搞定 </li></ul><ul><li>不只是 jsp 文件会过滤, HTML 文件也会过滤,只要是走 Servlet 容器 </li></ul><ul><li>当前版本处理中文还有点问题,需要修改一个文件 </li></ul>
  19. 19. Sitemesh 的使用2 <ul><li><decorator name=&quot;main&quot; page=&quot;dec_main.jsp&quot;> </li></ul><ul><li><pattern>/*.shtml</pattern> </li></ul><ul><li></decorator> </li></ul><ul><li><decorator name=&quot;blank&quot; page=&quot;dec_blank.jsp&quot;> </li></ul><ul><li><pattern>/upload*.shtml</pattern> </li></ul><ul><li><pattern>/dynamic*.shtml</pattern> </li></ul><ul><li></decorator> </li></ul>
  20. 20. Wiki 集成 <ul><li>Wiki Link </li></ul><ul><ul><li>[MatrixJava] [Jmatrix] [SUN] </li></ul></ul><ul><ul><li>发布内容时编辑者主动加上 wiki_link </li></ul></ul><ul><li>Keywords Link </li></ul><ul><ul><li>设置关键词 s </li></ul></ul><ul><ul><li>系统扫描内容,自动匹配加上 wiki link </li></ul></ul><ul><li>Wiki 用户 </li></ul><ul><ul><li>直接使用 matrix 用户,通过 xmlrpc 远程调用 </li></ul></ul>
  21. 21. 可配置 editor <ul><li>通过 spring 配置文件加载 editor </li></ul><ul><li>指定 editor name 即处理内容时 </li></ul><ul><ul><li>不同的 process </li></ul></ul><ul><ul><li>Jsp include 不同 </li></ul></ul><ul><li>这种可配置是否有很大的意义? </li></ul>
  22. 22. 可配置 editor2 <ul><li><bean id=&quot;contentProcessor&quot; class=&quot;cn.org.matrix.jmatrix.util.ContentProcessor&quot;> </li></ul><ul><li><property name=&quot;editors&quot;> </li></ul><ul><li><list> </li></ul><ul><ul><ul><ul><li><ref bean=&quot;bbcode&quot;></ref> </li></ul></ul></ul></ul><ul><ul><ul><ul><li><ref bean=&quot;fckeditor&quot;></ref> </li></ul></ul></ul></ul><ul><li></list> </li></ul><ul><li></property> </li></ul><ul><ul><li><property name=&quot;defaultEditorName&quot;><value>bbcode</value></property> </li></ul></ul><ul><ul><li><property name=&quot;wikiBaseUrl&quot;><value>http://wiki.matrix.org.cn</value></property> </li></ul></ul><ul><li></bean> </li></ul><ul><li><bean id=&quot;fckeditor&quot; class=&quot;cn.org.matrix.jmatrix.util.editor.CommonEditor&quot; > </li></ul><ul><ul><li><property name=&quot;name&quot;><value>fckeditor</value></property> </li></ul></ul><ul><ul><li><property name=&quot;description&quot;><value>FCK Editor from sourceforge</value></property> </li></ul></ul><ul><ul><li><property name=&quot;parseWikiKeywordsLink&quot;><value>true</value></property> </li></ul></ul><ul><ul><li><property name=&quot;pageIncludeFile&quot;><value>/common/editor/includeFCKEditor.jsp</value></property> </li></ul></ul><ul><li></bean> </li></ul>
  23. 23. 可配置 editor3 <ul><li><html:select property=&quot;selectEditor&quot; </li></ul><ul><li>onchange=&quot;document.forms[0].changeEditor.value='change'; </li></ul><ul><li>document.forms[0].submit();&quot;> </li></ul><ul><ul><ul><li><html:optionsCollection property=&quot;contentEditorList“ </li></ul></ul></ul><ul><ul><ul><li>label=&quot;name&quot; value=&quot;name&quot; /> </li></ul></ul></ul><ul><li></html:select> </li></ul><ul><li><jsp:include page=&quot;${articleForm.selectEditorPage}&quot; flush=&quot;true&quot;> </li></ul><ul><ul><li><jsp:param name=&quot;editor_name&quot; value=&quot;editorContent&quot; /> </li></ul></ul><ul><ul><li><jsp:param name=&quot;editor_height&quot; value=&quot;400&quot; /> </li></ul></ul><ul><ul><li><jsp:param name=&quot;editor_init&quot; value=&quot;${articleForm.content2}&quot; /> </li></ul></ul><ul><ul><li><jsp:param name=&quot;editor_toolbarSet&quot; value=&quot;Basic&quot; /> </li></ul></ul><ul><li></jsp:include> </li></ul>
  24. 24. 目 录 <ul><li>历史与定位 </li></ul><ul><li>功能简介 </li></ul><ul><li>技术架构 </li></ul><ul><li>几个技术点探讨 </li></ul><ul><li>未来 </li></ul>
  25. 25. 未来 <ul><li>倾听与满足用户需求  </li></ul><ul><li>Roller Blog 集成 </li></ul><ul><ul><li>用户, group blog </li></ul></ul><ul><li>向 CMS 标准、规范靠拢 </li></ul><ul><ul><li>不一定用 JSR 170 </li></ul></ul><ul><li>扩展点 Extension Point </li></ul><ul><li>Template </li></ul><ul><li>Plugin </li></ul>
  26. 26. <ul><li>Thank you </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×