CodeForge QQ客服 CodeForge 400电话 客服电话 4006316121
首页 » 源代码 » java web 框架

java web 框架

firstzhang
发布于2016-05-18 06:28:18
源码作者
浏览次数:
下载次数:0
下载所需积分:1 
源码分类 Tags:
源码分类 所属分类:
AllAll

分享有礼! 》

  • 请点击右侧的分享按钮,把本代码分享到各社交媒体。
  • 通过您的分享链接访问Codeforge,每来2个新的IP,您将获得0.1 积分的奖励。
  • 通过您的分享链接,每成功注册一个用户,该用户在Codeforge上所获得的每1个积分,您都将获得0.2 积分的分成奖励。

代码介绍

fall 2.0 beta

我宁愿称fall为组件集而不是一个框架,而提供更多的可重用性。 fall 2.0是一个web框架,类似strusts。 fall2.0可以与seam、spring或者CDI等ioc容器一起工作,不具有耦合性。

注意:在未能通读源码和能够进行修改之前,请勿使用fall进行商业开发,(其实我自己已经在用它构建网站)

fall 2.0主要负责以下工作:

一、处理请求参数:fall将根据配置自动应用请求值到模型并提供验证。在此fall如下工作: 1、转换请求参数:fall结合EL自动判断映射到的模型属性的类型。当该类型不能被应用转换的时候,比如该类型是一个接口,就必须在页面配置文件里指明参数的类型。 2、fall使用EL表达式语言自动应用请求值到模型,支持el1.2和el2.x 3、fall使用Bean Validator规范进行验证,当然你可以关闭验证,并进行代码级验证。

二、执行动作:fall根据配置文件执行动作,类似于seam,保留fall1.0 beta 版本的功能。 fall 2.0抛弃了seam的方法和对象级别的安全检查,而建议由页面动作执行请求级别的安全检查,你可以自己编写安全,提供页面动作拦截访问。

三、导航 沿袭了seam的导航,不过只使用了简单导航,不支持业务流程。如果需要可以自己扩展

四、错误管理 统一处理错误管理并导航。 你可以编写安全Exception并在安全检查失败时抛出,交由错误管理机制进行导航

五、事务 建议遵循seam的事务原则

六、渲染 fall 2.0提供一个类似于jsf facelets的渲染组件。不过,你可以自由替换它。 我建议使用jstl+el,在后台把所有需要呈现的数据打包成bean,不论是输出html,还是xml的方式都极为方便,实现数据与逻辑的分离。

七、其它 附带很多实用组件和servlet过滤器,包括 1、字符编码过滤器 2、对上传文件的支持组件,包括过滤器,文件验证等系列功能。 2、富文本过滤组件,支持补全标签,根据名单过滤恶意代码等。 2、y:import标签,支持页面包含,比较简陋,但你很容易扩展 5、翻页组件 6、路径码工具 7、URL和编码组件 ...

// --------------------------

我将逐步完成详细注释和doc,以帮助大家阅读源码

// ---------------------------

注意 在fall 渲染组件 1:如果在页面直接使用表达式出现错误,请使用c:out/标签,因为似乎某些版本的dom4j存在文本节点字符遗失的问题 2:空元素如果要求不能自关闭的话,必须加空格,比如 script空格/script ,否则会输出 script/ ,某些浏览器可能不认识它们

还有 firefox对空src属性会进行多次提交,影响CDI的对话,当然这与fall无关。

// =============================================旧

我花了很多时间琢磨java的web框架,但很少有完全满意的,也许每个人对框架都有不同的理解和喜好。我写web应用,深感现有框架的不顺手,并且渴望掌握程序的控制权,所以诞生了写一个自己框架的念头。由于学java是半路出家的,基础并不扎实,而且势单力薄,思来想去,只能站在巨人的肩膀上,利用开源代码加以改进。 我把我的框架姑且命名为fall,并发布到网络,没有哗众取宠的意思,只希望能有更多的人关注,建议,批评,指教。我想这就是开源的初衷吧。 fall框架部分实现了jsf1.2、jsp2.1规范,部分抄袭了jsf-ri、seam和tomcat的代码。利用seam的状态管理功能以及实用的组件,构建一个相对较为完善的web框架。fall是web bean组件完善之前的一个过渡尝试。

fall部分实现了jsf1.2规范, 实际上主要是利用jsf的高度可插接机制,以及由于seam前端对jsf的紧密耦合而不得不为。 fall摒弃了jsf的ui组件机制,增加了jsp的PageContext做为FacesContext的功能补充,部分实现jsp2.1的渲染,能兼容jsp tag。 使用fall需要引入jsf-api1.2.jar,jboss-seam.jar等包。

fall的说明:

servlet容器启动依然由seam监听器完成状态初始化,初始化组件,

FacesServlet做为唯一的servlet,

重写FacesContextFactory,FacesContext等实现,实现PageContext

生命周期简化合并为三个 ApplyRequestValuesPhase InvokeApplicationPhase RenderResponsePhase

应用请求阶段会解析请求参数,并应用到model。可以使用jsf的转换器(验证器因为seam组件中一个hibernate validator致命NoClassDefFoundError bug暂时被注释掉了),推荐使用hibernate-validator进行model验证,出错的话根据配置(与页面动作返回null一致)导航。错误信息放到StatusMessages的子类ysq.fall.servlet.FallMessages(对话上下文)中,可以用jsp标签显示。把file参数以ysq.fall.servlet.FileParam实例映射到model。FileParam具有getFileName(),getContentType(),getFileSize(),getFileInputStream()等方法,可以使用hibernate-validator验证。请求参数保存到ysq.fall.servlet.FallParameters(对话上下文)中以便当转换和验证失败时保存表单数据。

注释掉了actionOutcome,actionMethod参数功能。增加actionPage参数(对应一个viewId)。fall将会解析pages.xml文件中与 actionPage 和 请求viewId 对应的page中的页面参数并执行页面动作。

渲染由FallRender实例完成,部分实现了jsp规范中的标签功能(省略了TagFileInfo相关功能,以后补上),PageContext贯穿其中。

纯html加标签、el,实现ajax很自然

拥有seam的页面流,工作流功能(未验证)。

保留seam事务、安全,

保留seam插接能力

...

慎重声明:该框架未经过系统化的测试,不适合直接做为商业应用的框架,只适合交流学习或改进后作为商业框架使用。

下载说明:版本为1.0,有两个压缩包,内容都是netbeans工程,一个是dist过的,一个没有dist过。 内部的test文件夹为简单测试,测试环境为tomcat6

Ʋ

源码文件列表

温馨提示: 点击源码文件名可预览文件内容哦 ^_^
...
名称 大小 修改日期
build.xml3.45 kB02-05-10 22:40
index.html1.13 kB02-05-10 22:40
messages.html696.00 B02-05-10 22:40
beans.xml264.00 B02-05-10 22:40
pages.xml1.26 kB02-05-10 22:40
web.xml2.39 kB02-05-10 22:40
context.xml360.00 B02-05-10 22:40
log4j.xml774.00 B02-05-10 22:40
Action.java911.00 B02-05-10 22:40
Components.java5.08 kB02-05-10 22:40
FallWeldServlet.java11.61 kB02-05-10 22:40
MANIFEST.MF25.00 B02-05-10 22:40
ant-deploy.xml1.57 kB02-05-10 22:40
build-impl.xml47.55 kB02-05-10 22:40
genfiles.properties473.00 B02-05-10 22:40
project.properties2.48 kB02-05-10 22:40
project.xml2.20 kB02-05-10 22:40
private.properties1.00 kB02-05-10 22:40
<test>0.00 B02-05-10 22:41
<META-INF>0.00 B02-05-10 22:41
<WEB-INF>0.00 B02-05-10 22:41
<META-INF>0.00 B02-05-10 22:41
<java>0.00 B02-05-10 22:41
<conf>0.00 B02-05-10 22:41
<private>0.00 B02-05-10 22:41
<empty>0.00 B02-05-10 22:41
<web>0.00 B02-05-10 22:41
<test>0.00 B02-05-10 22:41
<src>0.00 B02-05-10 22:41
<nbproject>0.00 B02-05-10 22:41
<dist>0.00 B02-05-10 22:41
<build>0.00 B02-05-10 22:41
<fall-2.0-demo-add-operation>0.00 B02-05-10 22:41
云测速

资源评论

(提交有效评论获得积分)
评论内容不能少于15个字,不要超出160个字。
  • 1
  • 第1页
  • 共1页

java web 框架 (20.61 kB)

需要 1 积分
您持有 积分

CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了 了解更多

您的积分不足,优惠套餐快速获取 30 积分

订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。

更多付款方式:网银PayPal

上传代码,免费获取CodeForge积分

您本次下载所消耗的积分将转交上传作者。

同一源码,30天内重复下载,只扣除一次积分。

登录 CodeForge

还没有CodeForge账号? 立即注册
关注微博
联系客服

Switch to the English version?

Yes
CodeForge 英文版
No
CodeForge 中文版

完善个人资料,获价值¥30元积分奖励!

^_^"呃 ...

Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧
好的