Miles' Blog

Welcome 2 My Planet

Available categories: [/] [development. ~]

关于指定资源下载的控制 [Permalink]

Thu Nov 25 00:33:32 CST 2004

因为kjava要求文件格式的特殊性,最终设计决定采用如下方案:

  1. 所有的权限控制都由filter处理,这样可以最大限度保证灵活性。实现上,所有的资源都会过filter。实际控制上,对于wml页面,用/*.jwml /*.kwml /*.wml来区分不同状态用户所能访问的页面;对于servlet,则通过他们共同父类,来进行精确到动作的访问控制(参看下面那个关于糟糕的'AOP'的文章)。
  2. 对于客户端,kjava游戏需要的两个文件(*.jad和*.jar)将会在逻辑上处于一个目录下。比如:
    http://wap.didy.net/game/1.jad
    http://wap.didy.net/game/1.jar
    实现上,/game/*映射到一个servlet,通过path_info取得后面的/1.jar部分,然后在里面进行资源访问的逻辑细节,包括扣点,记录流水,以及读取指定资源,并用stream写到客户端。path_info是一个不错的东西,利用它可以作出灵活的应用。只要可以自由定制uri mapping的技术就能用它。当然,asp就做不到。

    这里有一个细节,就是为了提供高可维护性、灵活性和扩展性,jad和jar文件(文件名不限)存储时候,只需要放入一个zip文件,而且jad文件的MIDlet-Jar-URL字段也不需要绝对路径。具体下载时候,程序会寻找正确的zip,解压,并且处理后交给客户端。将来对于图片铃声也类似处理。这样控制力很强,可以实现防止盗链、给图片打戳等高级功能。

附上kjava的jad和jar文件contenttype(mimetype):
    private static final String CONTENT_TYPE_DOWN_JAD="text/vnd.sun.j2me.app-descriptor";
    private static final String CONTENT_TYPE_DOWN_JAR="application/java-archive";

Posted by: miles

Comments on this entry





Author (*):
Verify Code (*):8 9 7 9
E-mail:
URL:
Comment (*):
Remember me?

Available categories: [/] [development. ~]

Powered By blojsom   RSS Feed  RSS2 Feed  RDF Feed