java的web框架
java的web框架众多的原因在于java的web框架只在servlet一层提供了标准,没有进而再往上作标准。因此,每个web框架都建立自己基于servlet之上的各种不同标准。
struts1使用Struts制订的Action接口
webwork,struts2使用Model和Action同一Action接口
Spring的Controller...
Cetia4的RestServlet...
...
这些web框架有一个基本的假设:开发者编写的Action要
必须继承于各自框架的基类。
到此就完了,如果各自的框架要求开发者要继承自己的基类,这还不会出现“百花齐放”那才奇怪了。
这样的Web框架最后都会被抛弃(隐藏在底层):
开发者就应该像开发中间层业务逻辑那样开发Web Action,Pure Web Action,不需要继承Servlet,不需要继承特有的Action对象。
Pure Web Action
web处理对象应该不需要显示继承Servlet,不需要继承框架特有基类,我将这样的web对象称为Pure Web Action,或POJO Action,它的好处是:
1、学习成本几乎为零
如下编写普通的Java代码有何成本可言?
public class UserAction {
private UserBo userBo;
public void setUserBo(UserBo userBo) {
this.userBo = userBo;
}
//获取一个指定用户id的用户信息
public String get(String id, HttpServletRequest request) {
User user = this.userBo.loadUser(id);
request.setAttribute("user", user);
return "user_profile_info";
}
}
2、鼓励Web框架竞争:
因为如上的UserAction是Pure Web Action,理论上不同的Web框架都能够支持运行它。
编写同样的Action,如果能在竞争的Web框架中使用这才是标准的意义。
有人认为JSF是标准,这是狗屁不通,没有理解“标准”2个字的意思。
JSF是它自己的标准,但不是web框架的标准。
就像hibernate只是他的标准,而不是j2ee的标准,ejb3才是他们的标准,hibernate,jdo只是他的实现。
web框架也应该如此,开发者按Pure Web Action的标准编写了web处理接口对象,这些pure web action没有限制要在那个web框架使用,这就意味着,他在理论上可在任何一个框架使用。
3、可测试性:
UserAction的get()好测试这是不言而喻的,提供了HttpServletRequest等Servlet要求的对象的Mock对象后,该Action就不需要别的了。
将来的java web framework“标准”的额外要求:
1、学习其他语言上web框架的的好思想、好做法,大量使用默认或惯例
2、采纳REST:支持丰富的http语义,支持uri的意义
3、透明连接业务逻辑层的AO或BO
4、支持一句话声明或配置,使就可使用想要的view技术,如velocity, freemark, jsp,...
(view技术不一定要是真的view,"假的"view可能只是:(不通过模板而)将对象转化为xml,返回给请求着)
5、action方法支持指令式格式:
public String login(User user) {
User user = this.userBo.auth(user.getLogonName(), user.getPassword());
if (user != null) return "@:1";
return "@:-1";
}
即开发者可在返回view对象中加上一些指令,如:
使用重定向的: r:或redirect:或!:指令,如r:register,表示重定向到注册页面
直接指定物理的view的: file:或f:指令, 如file:/page/jsp/error.jsp,表示返回该jsp页面给客户端
更多的指令可以在标准中统一规定,并有具体的Web框架实现者来完成以上解析。
。。。
我没有看到有所谓知名的web框架采用如上的设计,但是因为它简单,我们没有理由不期待。
分享到:
相关推荐
《Java Web框架技术与项目实战》课程标准.pdf《Java Web框架技术与项目实战》课程标准.pdf《Java Web框架技术与项目实战》课程标准.pdf《Java Web框架技术与项目实战》课程标准.pdf《Java Web框架技术与项目实战》...
从零开始搭建Java Web框架,使用的开发环境是IDEA15+tomcat8+jdk8+maven3; web.xml如何编写;pom.xml如何编写;将代码导入你的idea,部署一下tomcat,就可以运行
一个简单的java web开发框架.详细请看帮助
同时,本文结合时代技术发展的特点,对基于SSH框架的Java-Web数据库配置设计方法进行了研究,并对基于jQuery技术的Java-Web功能优化设计方法进行了探讨。这些研究对SSH框架和jQuery技术的应用于Java-Web的开发应用有着...
《架构探险——从零开始写Java Web框架》首先从一个简单的 Web 应用开始,让读者学会如何使用IDEA、Maven、Git等开发工具搭建 Java Web 应用;接着通过一个简单的应用场景,为该 Web 应用添加若干业务功能,从需求...
此文档有助于帮助java初级人员学习web框架技术
Java Web 框架 编程 Structs Java Web 框架 编程 Structs Java Web 框架 编程 Structs
java web 框架开发 java web 框架开发 java web 框架开发
java高手真经 java web核心框架 第5课 hibernate+mysql java高手真经 java web核心框架 第6课 hibernate+oracle java高手真经 java web核心框架 第5课 hibernate+sqlserver
一个不错的java web框架
架构探险—从零开始写Java Web框架架构探险—从零开始写Java Web框架
书首先分析了java web应用的分层设计方法,并进行应用框架的选型,然后讲解各种java web应用框架、集成技术、实战开发。主要内容包括如下。. 持久层框架hibernate:讲解hibernate入门与核心技术,分别实现mysql、...
在论坛上找到的,JAVA老鸟的技术笔记!
java web 开发框架学习java web 开发框架学习java web 开发框架学习java web 开发框架学习java web 开发框架学习java web 开发框架学习
java图形化界面框架,java图形化界面框架java图形化界面框架java图形化界面框架java图形化界面框架
开发者突击:Java Web主流框架整合开发(第2版).pdf
第8篇为工具篇,内容包括在Java Web项目中常用的开源工具框架、主要有版本管理工具SVN、日志工具commons-logging与Log4J、报表图形引擎JFreeChart、PDF组件iText等;第9篇为实战篇,内容为两个典型的应用系统:论坛...
Java web 国际化
Java 常用 web 框架源代码,可以直接link myeclipse ,主要包含struts hibernate_src dom4j spring log4 common-fileupload webwork
《开发者突击:Java Web主流框架整合开发(J2EE+Struts+...随书附赠光盘内容包括《开发者突击:Java Web主流框架整合开发(J2EE+Struts+Hibernate+Spring)》10种架构原型程序包、个人通讯录及办公自动化系统源程序。