远离框架,实现自己REST风格的Servlet框架(二)

接上文:远离框架,实现自己REST风格的Servlet框架(一)上文讲到URL解析后返回method方法,我们接下来继续讨论。

1, URL解析(上文已表述)

  • 静态资源的访问,如/js/jquery.js,/templete/index.vm等
    这样的请求有一个缺点,如下:
    在我的页面引用了这样的js : src=“static/jq/jquery-1.9.1.js”
    对应当前请求的URL:http://localhost:8080/myCMIS/Test1Controller/init/123/456
    在画面初始化的时候会去请求js文件,路径就会变成:
    jspath = http://localhost:8080/myCMIS/Test1Controller/init/123/456/static/jq/jquery-1.9.1.js
    这样的请求显然是找不到对应JS的,解决办法如下:
    1,直接写成绝对路径的js,如:src=/myCMIS/static/jq/jquery-1.9.1.js(开发阶段)
    2,后期写成src=http://www.dlcytennis.com/myCMIS/static/jq/jquery-1.9.1.js(上线阶段)
    这也体现出一个问题,就是在rest风格的url中静态文件的引用都应该是绝对路径的。

  • ajax类的请求
    我写了如下的一个测试方法:

    $('#test').click(function() {
        $.ajax({
            url : 'Test1Controller/testJson',
            data : {
                p1 : 'p1',
                p2 : 'p2'
            },
            type : 'post',
            cache : false,
            dataType : 'json',
            success : function(data) {
    
            },
            error : function() {
                alert("error!");
            }
    
        });
    });
    

    代码url中Test1Controller是类名,testJson是方法名
    我手很贱的点了下test的按钮,结果后台给我抛了个异常,如下:
    org.lbncims.framework.exceptioon.FrameworkException: method argsType is not mather paramater .
    我DEBUG跟了下,原来还是上面的问题 ,url在提交时自动变成 了/myCMIS/Test1Controller/init/123/Test1Controller/testJson
    这样的话在解析的时候一定会出错的,解决办法如下:
    额,又12点了,亲们,写不动了,先休息下,另外社区里有没有大连的朋友啊,有的吼个!!

你可能感兴趣的:(servlet,REST,大连,好基有,有木有)