雖然我在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。我能夠成功登錄。
爲什麼這會影響登錄過程?
了'window.location.href = 「頁/ admin」 的;'將無法正常工作,您需要點它到您的服務器網址,如:_http://myserver.com/page/admin_ – fmodos 2014-09-02 12:27:33