在sae中使用jfinal框架开发web工程遇到的问题
生活随笔
收集整理的這篇文章主要介紹了
在sae中使用jfinal框架开发web工程遇到的问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
sae使用總結一、部署應用后訪問報錯
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需要注釋掉67、68行代碼,得到的target已經不包含應用名
二、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
轉載于:https://my.oschina.net/seightday/blog/161751
總結
以上是生活随笔為你收集整理的在sae中使用jfinal框架开发web工程遇到的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: socket.io.js的disconn
- 下一篇: debian 7上安装svn