一个java框架的开发日记(2)

原创 2011年01月18日 22:08:00

今天1.0版本已经有一个雏形了,以后会加入更多的东西。

先介绍下我的思路吧。

第一步、是velocity引擎,我使用一个取路径的类来寻找已经设计好的模版文档,将其中的模版标签替换,将其作为响应返回给浏览器。

代码:

 

第二步、修改web.xml文件将其所有的sevlet路径都指向我自己定义的类。

第三步。建立自己的类VatanaSevlet类。类中调用VatanaController的call()作为控制器指定模型并取得一个字符串作为视图索引。

调用VelocityEnginee的show()方法呈现视图给浏览器。

第四步、控制器VatanaController。

可以看到该类并没有完成。其中URL分析部分还需完善。

其主要作用是分析url,变换成相应的动作指令,使用java的反射机制进行调用。这个思路来源于rails,在这里我想使用约定而不是xml配置文件。把一些东西限制定死了,可以集中人的注意力在处理逻辑上。

假如一个url是:http://localhost/vatana/action/method?param1=1&param2=2

那么作为控制器会自动寻找类Action的method方法,如果不写方法,默认为excute,username和password参数及其值,可以在params中找到。默认action是必须写的,如果不写,按照主页处理,将会定位到index页面,在这里我用的velocity模版的后缀是html.这样可以直接在浏览器中预览,方便设计。

第五步、一个模版类需要继承BaseModel类。然后创建一个自己的方法(或者重写excute方法)即可。

这样在继承类里就只需要重写excute类即可。在此,我有一点犹豫,excute方法是否应定义成抽象函数,

一个具体的模型类

注意上个类中的注册对象到模版,velocity是支持对自定义对象进行操作的。上面这个模型对应的视图模版可以这样写

 

最终呈现的结果会是

 

     你好 vatana,你的ID是1!

 

框架的大致流程就是这样子,使用vatana开发应用,只需要创建一个模版页,一个model类,就足够了。

当然这个框架还有很多需要扩充的地方,我认为url方面还有更多东西来做,url的创建,链接的管理,我打算用一个类管理超链接和form标签,这个类将会通过velocity模版展现在页面上,不需要开发人员每次都要遍历所有的模版去找要修改的内容。

这是第一版的代码,我在这里把model的包路径给定死了com.vatana.model,这是我自己用的一个路径,以后我打算做一个让此路径可以定制。但是每个项目只能做一次定制,我在这里把给模型类同名的package,这样不会导致所有的类型都集中在一个package下显的混乱。

 

为了方便开发,我打算写一段自动生成文件的程序,只需要一点点的配置,就可以得到我想要的一切--程序,视图模版。不需修改就能使用。

 

同时在这里做一下展望吧,在将来框架会更完善,集成jQuery,hibernate等更多的元素让每一个java程序员能够更敏捷开发web程序,

 

网易java开发实习日记

2014.05.14 第一天入职,感觉很棒!呗
  • u014054428
  • u014054428
  • 2014年05月15日 22:03
  • 1780

java实习日记三

今天,我完成了对于图片的显示功能。我通过上网查找如何让图片在java上显示出来。写入一段代码在原代码上实现了图片的显示。今天也只能做到这里。明天继续去完成猜猜看的名字配对部分  import ...
  • u013993272
  • u013993272
  • 2015年07月01日 11:39
  • 965

java 蓝桥杯 高斯日记

高斯日记  大数学家高斯有个好习惯:无论如何都要记日记。 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯出生...
  • Yiyuan_chen
  • Yiyuan_chen
  • 2017年02月07日 14:43
  • 339

用java实现简易日记本

package com.MyDiary; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.even...
  • zhaoming262350
  • zhaoming262350
  • 2013年03月09日 06:33
  • 3756

java实习日记一

import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing...
  • u013993272
  • u013993272
  • 2015年07月01日 08:21
  • 368

使用Java语言编写一款日记软件

*前言:用此款软件记录生活的点滴项目分析一、 实验说明 - 环境介绍 本实验在Window平台下,使用Eclipse环境 - 项目介绍 使用java语言实现的一款日记软件。可以实现用户的...
  • baidu_22522021
  • baidu_22522021
  • 2016年04月09日 16:56
  • 2435

《Java课程实习》日志(周一)

第一部分:实验项目 项目一:随机相片显示。 目的:了解随机数的生成,及图片的显示。 目标: (1)在已有代码的基础上,完成随机(或 顺序)显示三张图片的功能。 (2)当猜测准确,或错误时,弹出对...
  • u013922904
  • u013922904
  • 2015年07月01日 09:31
  • 794

9个基于Java的搜索引擎框架

在这个信息相当繁杂的互联网时代,我们已经学会了如何利用搜索引擎这个强大的利器来找寻目标信息,比如你会在Google上搜索情人节如何讨女朋友欢心,你也会在百度上寻找正规的整容医疗机构(尽管有很大一部分广...
  • huoyunshen88
  • huoyunshen88
  • 2014年09月04日 13:49
  • 1775

《java实习》日志 周四

import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing...
  • u013930303
  • u013930303
  • 2015年07月02日 11:48
  • 331

前端开发体系建设日记

前端开发体系建设日记 · Issue #2 · fouber/blog https://github.com/fouber/blog/issues/2
  • ulalau
  • ulalau
  • 2014年06月12日 11:24
  • 810
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一个java框架的开发日记(2)
举报原因:
原因补充:

(最多只允许输入30个字)