在sae中使用jfinal框架開發web工程遇到的問題

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
相關文章
相關標籤/搜索