2014-09-02 62 views
0

雖然我在Eclipse Kepler和本地Apache Tomcat 7服務器上開發此網站,但我可以設置會話變量以確定用戶是否登錄到網站。未使用Tomcat 7設置會話變量,Java MVC

將網站部署到遠程服務器後,在提供正確的登錄詳細信息後,會話變量不再設置!

我的遠程服務器上運行的Ubuntu 12.04服務器,Apache Tomcat上7.

我使用AJAX表單提交的登錄詳細檢查,如果他們是正確的我使用JavaScript重定向到管理頁面。

這是對Controller中會話變量的檢查。在轉發到管理頁面之前,AJAX調用會檢查「成功」,如果我沒有檢查會話變量,這將起作用,這就是我如何知道會話變量未被設置的原因。

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    String form   = request.getParameter("form"); 
    // check login details 
    if(form.equals("loginForm")){ 
     String username = request.getParameter("username").trim(); 
     String password = request.getParameter("password").trim(); 

     password = loginService.hashPassword(password); 
     boolean isValidUser = loginService.checkUser(username, password); 

     if(isValidUser){ 
      // set session 
      HttpSession session = request.getSession(); 

      session.setAttribute("loggedIn", "true"); 
      if(session.getAttribute("loggedIn") != null){ 
       out.print("success"); 
      } 

     }else{ 
      out.print("Incorrect login details."); 
     } 
    } 
} 

的AJAX調用:

$.ajax(
    { 
     type: "POST", 
     url : "HomeController", 
     data : postData, 
     success: function(data) 
     { 
      if(data == "success"){ 
       window.location.href = "page/admin"; 
      } 
     }, 
     error: function(jqXHR, textStatus, errorThrown) 
     { 
      $("#loginResult").html("<p>ss"+errorThrown+textStatus+jqXHR+"</p>"); 
      } 
     }); 
}else{ 
    $("#loginResult").html("<p>Unable to login: ensure details are correct.</p>"); 
} 

Tomcat的日誌文件:

    • [02 /月/ 2014:12:37:21 0100]「GET /驅動-Instructor-Gary/page/admin HTTP/1.1「200 -
    • [02 /月/ 2014:12:37:24 0100] 「GET /驅動講師加里/頁/登錄HTTP/1.1」 200 7959
    • [02/SEP/2014:12:37:24 0100] 「GET /Driving-Instructor-Gary/css/main.css HTTP/1.1」 304 -
    • [02 /月/ 2014:12:37: 31 +0100]「POST/Driving-Instructor-Gary/HomeController HTTP/1.1」200 11
    • [02 /月/ 2014:12:37:32 0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
    • [02/SEP/2014:12:37:32 0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
    • [02 /月/ 2014:12:37:32 0100] 「POST/Driving-Instructor-Gary/HomeController HTTP/1.1」200 11
    • [02 /月/ 2014:12:37:33 0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
    • [02/Sep/2014:12:37:33 +0100]「POST/Driving-Instructor-Gary/HomeController HTTP/1。1" 200 11
    • [02 /月/ 2014:12:37:33 0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
    • [02 /月/ 2014:12:37:33 0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
    • [02 /月/ 2014: 12:37:33 +0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
    • [02 /月/ 2014:12:37:33 0100]「POST /驅動講師加里/ HomeController的HTTP/1.1" 200 11
    • [02 /月/ 2014:12:38:03 0100] 「GET /驅動講師加里/頁/登錄HTTP/1.1」 200 7959
    • [02 /月/ 2014:12:38:03 0100] 「GET /Driving-Instructor-Gary/js/bootstrap.min.js HTTP/1.1」 304 -
    • [02 /月/ 2014:12:38:03 0100] 「GET /Driving-Instructor-Gary/js/jquery.js HTTP/1.1」 304 -
    • [02 /月/ 2014:12: 38:03 +0100]「GET /Driving-Instructor-Gary/css/main.css HTTP/1.1」304 -
    • [02 /月/ 2014:12:38:03 0100] 「GET /Driving-Instructor-Gary/css/bootstrap.min.css HTTP/1.1」 304 -
    • [ 02 /月/ 2014:12:38:04 0100] 「GET /Driving-Instructor-Gary/img/favicon-16.png HTTP/1.1」 304 -
    • [02/SEP/2014:12:38:11 +0100]「POST/Driving-Instructor-Gary/HomeController HTTP/1.1」200 11
    • [02 /月/ 2014:12:38:12 0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
    • [02/SEP/2014:12:38:12 0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
      • [02 /月/ 2014:12:38:12 0100]「POST/Driving-Instructor-Gary/HomeController HTTP/1。1" 200 11
    • [02 /月/ 2014:12:38:12 0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
      • [02 /月/ 2014:12:38:13 0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
    • [02 /月/ 2014:12:38:13 0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
    • [02 /月/ 2014:12 :38:13 0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
    • [02 /月/ 2014:12:38:14 0100]「POST/Driving-Instructor-Gary/HomeController HTTP/1.1「200 11
    • [02 /月/ 2014:12:38:14 0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
    • [02 /月/ 2014 :12:38:14 0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
    • [02 /月/ 2014:12:38:14 0100]「 POST/Driving-Instructor-Gary/HomeController HTTP/1.1「200 11
    • [02 /月/ 2014:12:38:15 0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
    • [02 /月/ 2014:12:38:15 0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
    • [02 /月/ 2014:12:38:15 0100 ]「POST/Driving-Instructor-Gary/HomeController HTTP/1.1」200 11
    • [02 /月/ 2014:12:38:15 0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
    • [02 /月/ 2014:12:38:16 0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
    • [02 /月/ 2014:12:38:16 +0100]「POST/Driving-Instructor-Gary/HomeController HTTP/1。1" 200 11
    • [02 /月/ 2014:12:38:16 0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
    • [02 /月/ 2014:12:38:17 0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
    • [02 /月/ 2014: 12:38:17 +0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
    • [02 /月/ 2014:12:38:17 0100]「POST /驅動講師加里/ HomeController的HTTP/1.1" 200 11
    • [02 /月/ 2014:12:38:17 0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
    • [02 /月/ 2014:12:38:17 0100] 「POST /驅動講師加里/ HomeController的HTTP/1.1」 200 11
    • [02 /月/ 2014:12: 38:18 +0100] 「POST /驅動導師加里/ HomeController的HTTP/1.1」 200 11

爲什麼會話變量沒有得到我的遠程服務器上設置?

編輯:

我已經意識到這點事做的登錄頁面的URL。

目前我已註冊了一個域名,指向我的服務器端口80(我使用虛擬主機),這是通過mod_jk轉發到Tomcat7。

我需要的網站的登錄頁面的網址是www.hostname.co.uk/page/login。使用此URL登錄失敗。

如果我在我的服務器上使用絕對文件位置的URL:hostformyserver.co.uk:8080/Driving-Instructor-Gary/page/login。我能夠成功登錄。

爲什麼這會影響登錄過程?

+0

了'window.location.href = 「頁/ admin」 的;'將無法正常工作,您需要點它到您的服務器網址,如:_http://myserver.com/page/admin_ – fmodos 2014-09-02 12:27:33

回答

0

我不知道這樣的回答:

就試試這個:

 String logString=(String)session.getAttribute("loggedIn"); 
    if(logString.equals("true")){ 
       out.print("success"); 
      } 
+0

我已更新我的問題。 – crm 2014-09-02 12:50:08