• 热门专题

JAVA做网站实现功能模块的思路

作者:KICCP Blog  发布日期:2012-09-25 10:54:51
Tag标签:功能模块  
  • 用JAVA做网站,框架当然首选Spring,后台打算自己开发,如果在功能上实现模块化呢?

    Spring的MVC demo是比较简单的,appServlet->Controller->Model->View ,整个流程很简单,也很清晰,视图默认使用的是jsp,
    根据个人喜好,我配置成了freemarker。

    后台的入口是 /admin ,需要定义一个Controller,处理 “/admin”开头的请求,url结构如 /admin?module=article&act=list&pageid=5,从字面意思上来看就是
    要调用article模块的list方法,并把pageid=5传递给它,这个过程是由admin这个Controller控制的,这个控制器默认接收三个参数:Locale locale, Model model,HttpServletRequest request,实际我们通常只需要后两个。在得到了module=article后,我们就可以使用反射把这Article这个类加载进来,用调用它的
    list方法,至于pageid=5,可以通过把request传递给它,让它自己去获取需要的参数,处理完后把model返回,控制器 return “template.ftl” 即可。

    这个方法是可行的,因为我已经成功了。反射这部分的实现可参见 JAVA使用反射动态生成类并调用其方法  。

    上面所说只是一个基础地框架,具体实施的时候还要细化,比如模块的名字,调用的类路径,它的方法等都要在后台注册才能使用,用数据库存储起来,并结合用户组,用户权限等控制某个用户所能调用的模块和方法,如果不被允许或模块、方法不存在,则report相应的错误信息。模块内可以在后台注册的方法全部接收Model model,HttpServletRequest request这两个参数,并返回model。

    用户组和用户权限需要另外设计,超级用户默认拥有模块管理这个模块的权限,且这点不可更改,因为模块管理本身也是个模块,超级用户只有拥有这个模块的权限后才能去管理其它的模块。

    用户组和用户权限的存储和解析这个问题比较复杂,相信每个人对此都有不同的思路,这里不再赘述。

    后台一旦完成,就可以开始使用,添加各式各样的数据。

    前台怎么实现不是关键,用jsp写也行,用freemarker也行,servlet不想用就不用,随便怎么写。

延伸阅读:

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规