sae使用总结
1、部署应用后访问报错
web应用在本地开发完成,部署使用无问题,在部署到sae上后访问应用,报如下错误

经定位,缘由在在于jfinal中的JFinalFilter类中。 本地开发时,在JFinalFilter的第57行代码String contextPath = filterConfig.getServletContext().getContextPath();获得的contextPath是/jusousuo 第66行代码String target = request.getRequestURI();获得的是/jusousuo/xxxxxx 67 if (contextPathLength != 0) 68 target = target.substring(contextPathLength); 其中contextPathLength为contextPath的长度,所以JFinalFilter处理的路径是去掉应用名的路径,即targer为/xxxxxx 将war包部署到sae中后,contextPath值为/1/jusousuo,request.getRequestURI()的值为/xxxxxx,所以在sae中,JFinalFilter须要注释掉6七、68行代码,获得的target已经不包含应用名 2、sae环境中重定向及页面contextPath 在sae中访问应用主页的能够经过访问http://jusousuo.sinaapp.com/或者http://jusousuo.sinaapp.com/1/jusousuo/ 在jfinal的controller中,直接调用redirect("/")方法,浏览器从新访问的是http://jusousuo.sinaapp.com/1/jusousuo/ 在jsp页面中,<base href="http://jusousuo.sinaapp.com:80/1/jusousuo/"> 所以contextPath及base href经过配置文件,使重定向(给出绝对路径)及base href中不出现/1/jusousuo,直接使用http://jusousuo.sinaapp.com/访问到应用 以上在sae中应用是经过war包部署,版本号为1。 源码地址https://github.com/seightday/isearch