在sae中使用jfinal框架开发web工程遇到的问题
生活随笔
收集整理的這篇文章主要介紹了
在sae中使用jfinal框架开发web工程遇到的问题
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
sae使用總結(jié)一、部署應(yīng)用后訪問報(bào)錯(cuò)
web應(yīng)用在本地開發(fā)完成,部署使用無問題,在部署到sae上后訪問應(yīng)用,報(bào)以下錯(cuò)誤
經(jīng)定位,原因在在于jfinal中的JFinalFilter類中。
本地開發(fā)時(shí),在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的長(zhǎng)度,因此JFinalFilter處理的路徑是去掉應(yīng)用名的路徑,即targer為/xxxxxx
將war包部署到sae中后,contextPath值為/1/jusousuo,request.getRequestURI()的值為/xxxxxx,因此在sae中,JFinalFilter需要注釋掉67、68行代碼,得到的target已經(jīng)不包含應(yīng)用名
二、sae環(huán)境中重定向及頁面contextPath
在sae中訪問應(yīng)用主頁的可以通過訪問http://jusousuo.sinaapp.com/或者h(yuǎn)ttp://jusousuo.sinaapp.com/1/jusousuo/
在jfinal的controller中,直接調(diào)用redirect("/")方法,瀏覽器重新訪問的是http://jusousuo.sinaapp.com/1/jusousuo/
在jsp頁面中,<base href="http://jusousuo.sinaapp.com:80/1/jusousuo/">
因此contextPath及base href通過配置文件,使重定向(給出絕對(duì)路徑)及base href中不出現(xiàn)/1/jusousuo,直接使用http://jusousuo.sinaapp.com/訪問到應(yīng)用
以上在sae中應(yīng)用是通過war包部署,版本號(hào)為1。
源碼地址https://github.com/seightday/isearch
轉(zhuǎn)載于:https://my.oschina.net/seightday/blog/161751
總結(jié)
以上是生活随笔為你收集整理的在sae中使用jfinal框架开发web工程遇到的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: socket.io.js的disconn
- 下一篇: debian 7上安装svn