`
jander
  • 浏览: 9327 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

一个简单web的构想,即将又一个山寨

阅读更多
动机:现在的web框架大都是庞然大物,学习曲线陡峭,难道就不能有5分钟能熟练应用的框架?我想做一个这样的。

大致思路: 根据url映射为各个Action类的method,进行控制器的调用,这样的好处是省略了view的配置。

框架的使用
1.实现一个具体的Action(见下面的Class Blog),并对其进行标记(只对Action类标记一个值)。
2.将标记的Action注入到Guice容器,就是要实现自己的Guice Module。
3.在web启动后,进行Guice注入,在ServeletContextListener中实现。
4.好像没有需要做的了。。。。除了写jsp\javascript\

实现
1.Action类大概的设计
Action类都implements Action 接口。Action接口是一个空接口,紧紧用于标识。
每个Action类都标记一个名称,Action的标记与method一起用于与url匹配.
每个Action可以实现多个方法.

@ActionAnnotation("blogs")
class Blog implements Action{
   ....
   
   public View new(HttpServeletRequest req,HttpServeletResponse resp){

    }

   //Action中的方法,模仿spring.
   public View list(HttpServeletRequest req,HttpServeletResponse resp){
         Map model=new HashMap();
         model.put("list",service.findAll());
         return new JstlView("/blogList.jsp",model);
    }
   ....
}


2.url路径转换器
//将url路径转换成MethodInvocation.
public class PathTranslator {
   public static MethodInvocation translate(String requestPath);
}

public class MethodInvocation{
   private Object object; //invocate action.
   private Method method; //invocate method of the action
   public Object inovate(Object... params);
}


3.建立一个MainServelet,将PathTranslator转化来的MethodInvocation进行调用.调用结果将返回一个View的对象.

4.View 表示框架视图.可以有JstlView,JsonView,RedirectView等等,不过暂时准备实现这三个。

流程
1.Client发出http://jander.iteye.com/admin/blogs/list请求;
2.该请求由MainServelet接收,发给PathTranslator翻译;
3.翻译结果出来是一个MethodInvocation对象,隐含我们要调用的Action Object和  method Object;
4.调用MethodInocation.innvocate方法,这将导致调用Action.method();
5.action.method()返回一个View。


就这样,应该没有问题,争取这两天做出来。
分享到:
评论
10 楼 findhappy7 2009-05-26  
我都是感觉实际上某些MVC框架是很繁琐的,一个框架总是想做超多的事情(页面展现,页面构件,数据验证,action转向,到后台数据处理,),一开始某些MVC也很轻巧(可能就和你这个一样,那时候应该还没出名),后来,不断的扩展、伸张到web开发的各个环节,,对其他 方案框架等,支持也越来越多,于是就变得很笨重了,,
所以,如果不想用现有的mvc,,自己写个也无妨,,
----
不过,个人认为自己写得mvc可能也会有走有流行MVC框架一样的路,先是一开始很简单,就是一个拦截调用相关业务流程的,并返回的过程,,但慢慢也是不断的加上对其他各个方案的支持,也就不断的容重起来,,
9 楼 mccxj 2009-05-25  
@RequestMapping可以对每个方法注释一个,一个controller就可以映射多个路径了。
使用org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping
有coc的功能也不错哦。

我的意见,倒不如在springmvc上做扩展,修改,更吻合自己的项目需求更好。。
总觉得mvc这条路,思路都差不多了。呵呵
8 楼 jander 2009-05-25  
mccxj 写道
jander 写道
对大家说一句:
希望大家对设计思路提意见,而不是冷嘲热讽和无声的新手票。

springmvc2.5的annotation,coc配置
等多就用xml配点bean,还麻烦么?
我是怎么看你的思路都和springmvc不是大同小异的么?
另外,2天弄出来的东西,功能真的够的上项目需求么?

ps:无冷嘲热讽之意思


我的思路是与spring mvc差不多,毕竟大部分时间就是用它。但也有不同点:
1.我使用guice作为ioc容器。spring和guice谁好,在于个人选择,我也不好说什么,个人不喜欢spring那种以字符串表示对象的方式。
2.因为使用url映射Action的method,比spring少了@RequestMapping这个标签。一个Controller一个这样的标签,项目一大,数量也是惊人不是,麻烦。

另外,我这个框架是不成熟的,我也没有说它是成熟的,只是想把自己的想法表达出来,作为交流的目的,我认为2天时间够了。
7 楼 mccxj 2009-05-25  
jander 写道
对大家说一句:
希望大家对设计思路提意见,而不是冷嘲热讽和无声的新手票。

springmvc2.5的annotation,coc配置
等多就用xml配点bean,还麻烦么?
我是怎么看你的思路都和springmvc不是大同小异的么?
另外,2天弄出来的东西,功能真的够的上项目需求么?

ps:无冷嘲热讽之意思
6 楼 jander 2009-05-25  
对大家说一句:
希望大家对设计思路提意见,而不是冷嘲热讽和无声的新手票。
5 楼 jander 2009-05-25  
mccxj 写道
投个新手

你这个简单是简单,优秀web框架的demo也是这么简单来的
倒不如先看看其他web框架,比如springmvc


你知道我没有看?我以前就是用springmvc的。
我只是在使用过程中,感觉springmvc还是麻烦,才做这个项目的。
4 楼 mccxj 2009-05-24  
投个新手

你这个简单是简单,优秀web框架的demo也是这么简单来的
倒不如先看看其他web框架,比如springmvc
3 楼 laiseeme 2009-05-24  
也听小胖说过完美mvc框架
2 楼 抛出异常的爱 2009-05-24  
action根本不理页面向导.
直接html连接html
到html上了再用action 返回 json数据  把数据填到必要的区域中.
数据提交除外
1 楼 findhappy7 2009-05-24  
真的够简单,,但也完成了,参数接受,-》(处理) -》返回

相关推荐

    Web移动应用框架构想.docx

    【Web移动应用框架构想】 Web移动应用框架是专门为移动设备设计和开发的,它们旨在提供高效、轻量级的解决方案,以优化在智能手机和平板电脑上的用户体验。这些框架允许开发者构建具有桌面级功能和流畅交互的Web...

    基于Web-GIS的森林资源管理信息系统构想

    《基于Web-GIS的森林资源管理信息系统构想》是一篇探讨如何利用现代信息技术提升森林资源管理效率和质量的学术文章。Web-GIS(Web Geographic Information System)是将地理信息系统(GIS)与互联网技术相结合,实现...

    数据库设计构想

    数据库设计是IT领域中至关重要的一个环节,它关乎到系统的性能、可扩展性和数据的一致性。本资料“数据库设计构想”深入探讨了在构建高效数据库时应考虑的关键因素和设计方法。以下是对这些核心知识点的详细阐述: ...

    PythonWeb开发实战(董伟明著)

    作者董伟明在序言中强调,Python Web开发不仅仅局限于会使用某个框架进行简单的代码编写,而是需要更多的技能和知识来构建一个具有可扩展性、高效性和高可用性的Web系统。因此,这本书为读者展示了Python Web开发...

    Web3.0视角下的地方志信息化平台建设构想.pdf

    【标题】:Web3.0视角下的地方志信息化平台建设构想 【描述】:本文并未直接涉及Web3.0技术或地方志信息化平台建设,而是关于小小说标题艺术的探讨。 【标签】:Web开发 开发技术 互联网 网页技术 专业指导 ...

    web3.0-PPt简介.ppt 文档

    Web 3.0 是一个正在兴起的概念,它将互联网转化为数据库,并朝向人工智能和语义网络的方向发展。以下是 Web 3.0 的一些关键特点和技术: 1. 数据网络:Web 3.0 的第一步是将互联网转化为数据库,即结构化数据集以可...

    规划管理系统构想

    根据给定文件的信息,我们可以提炼出关于“规划管理系统构想”的相关知识点,主要涉及规划管理系统的构架设计、系统功能以及实现目标等几个方面。 ### 规划管理系统构想 #### 一、系统概述 规划管理系统是针对...

    web_asp程序设计及网页设计

    尽管这与我们现在使用的万维网大不相同,但是它们有许多相同的核心思想,甚至还包括一些伯纳斯-李的万维网之后的下一个项目语义网中的构想。 1989年3月,伯纳斯-李撰写了《关于信息化管理的建议》一文,文中提及 ...

    方配WMS框架快速Web应用开发教程

    很多的同学认为学习.NET 开发要比学习 JAVA 做项目要容易吧,不过用.NET 做一个小程序很简单, 但要你开发一个商业化系统就没那么容易了,而这套框架的目的就是让新手开发一个系统,就像他 们开发一个“计算器”小...

    电商发展思路构想.pptx

    电商发展思路构想.pptx

    特斯拉的_异端_世界无线充电构想

    特斯拉,作为交流电的先驱,不仅在电力系统方面做出了革命性的贡献,还设想了一个无需物理连接的全球无线充电网络。他的核心理念是利用电磁波来传输能量,类似于现代的无线电广播,但特斯拉构想的系统更为高效,能够...

    网站架构建议及构想

    网站架构设计是构建高效、可扩展且易于维护的web应用程序的关键。本文主要探讨了网站架构的基本需求、目标、...通过合理划分层次,明确职责,以及灵活、简单的设计原则,可以构建出适应不断变化需求的高质量web系统。

    web原型设计工具

    Web原型设计工具是用于创建网页或应用程序交互模型的软件,它们帮助设计师在开发过程中快速构建出界面布局和功能流程的初步构想。这些工具通常强调易用性,以手绘风格呈现,给予用户自然、直观的体验。...

    Web Application Development with Yii and PHP(第二版)

    本书的重点在于通过实际操作来学习Yii框架,具体方法是通过构建一个基于Web的项目任务跟踪系统,从项目构想到生产部署的整个过程中逐步深入地讲解。项目任务跟踪系统是一个典型的Web应用程序,它可以帮助团队组织、...

    智慧城市实施路径构想.pdf

    智慧城市实施路径构想.pdf

    大型企业总部网络构想、设计、实施

    构想阶段,我们需要考虑如何支持大量的信息点(500-1000个),确保网络的稳定性和高效性,同时预留足够的扩展空间,以适应企业的持续增长。 设计是网络建设的关键环节。首先,网络拓扑的选择至关重要,常见的有星型...

Global site tag (gtag.js) - Google Analytics