在我的JSP页面session.getattribute("email")
上返回null,而我在Java servlet中设置了sessionattribute。
它可以在eclipse工作区中工作,但是当我在Linux VPS上部署应用程序时遇到了这个问题。我正在使用Tomcat版本8.5。
我已经在Linux VPS(centos 7)上部署了Java网站。使用httpd 2.4,Tomcat 8.5和mod_jk作为Apache Web服务器和Tomcat之间的连接器。
我能够从Java Servlet设置会话,但是当我尝试获取会话属性时,它将返回null
我的servlet:
package controller;
import java.io.IOException;
import java.net.URLEncoder;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
@WebServlet("/LoginControl")
public class LoginControl extends HttpServlet {
private static final long serialVersionUID = 1L;
private static final Logger LOGGER = Logger.getLogger(LoginControl.class.getName());
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
String email = request.getParameter("username");
HttpSession session = request.getSession();
LOGGER.info("In LoginControl Servlet : " + email);
LoginOperation operation = new LoginOperation();
String userRole = operation.authenticateRole(email);
if(userRole.equals("admin"))
{
String pass = request.getParameter("password");
boolean result = operation.authenticateAdmin(email,pass);
if(result == true){
LOGGER.info("role found for : " + email + " is admin. ");
session.setattribute("email",email);
/*Cookie ck = new Cookie("email",email);
response.addCookie(ck);*/
LOGGER.info("Admin session Set Successfully : " + email);
response.sendRedirect("adminoptions.jsp");
}else{
response.sendRedirect("login.jsp?msg="+URLEncoder.encode("Invalid Login ID or password....","UTF-8"));
}
}else if(userRole.equals("user"))
{
boolean result = operation.authenticateUser(email);
if(result == true){
LOGGER.info("role found for : " + email + " is user. ");
session.setattribute("email",email);
/* Cookie ck = new Cookie("email",email);
response.addCookie(ck);*/
LOGGER.info("User session Set Successfully : " + email);
response.sendRedirect("index.jsp");
}
}else{
LOGGER.info("no role found for user : " + email );
LOGGER.info(email + "No user fond ");
response.sendRedirect("login.jsp?msg="+URLEncoder.encode("No User found...Try to Register","UTF-8"));
//response.sendRedirect("resources.jsp");
}
}
}
JSP代码:
<%@page import="javax.servlet.http.*,org.apache.log4j.Logger" %>
<%
Logger logger=Logger.getLogger(this.getclass().getName());
response.setHeader("Cache-Control","no-cache");
response.setHeader("Cache-Control","no-store");
response.setDateHeader("Expires",0);
response.setHeader("Pragma","no-cache");
String user = (String) session.getattribute("email");
logger.info("on adminoptions.jsp page : " + user);
if(user==null || user==""){
response.sendRedirect("login.jsp");
}
%>
<!DOCTYPE html>
<html lang="en">
<head>
<title>MarketingKnowledgeHub — Admin</title>
<link rel="shortcut icon" href="images/favicon.png" type="image/gif" sizes="18x18">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,900" rel="stylesheet">
<link rel="stylesheet" href="fonts/icomoon/style.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css">
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/jquery-ui.css">
<link rel="stylesheet" href="css/owl.carousel.min.css">
<link rel="stylesheet" href="css/owl.theme.default.min.css">
<link rel="stylesheet" href="css/owl.theme.default.min.css">
<link rel="stylesheet" href="css/jquery.fancybox.min.css">
<link rel="stylesheet" href="css/bootstrap-datepicker.css">
<link rel="stylesheet" href="fonts/flaticon/font/flaticon.css">
<link rel="stylesheet" href="css/aos.css">
<link rel="stylesheet" href="css/style.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body data-spy="scroll" data-target=".site-navbar-target" data-offset="300">
<div class="site-wrap">
<div class="site-mobile-menu site-navbar-target">
<div class="site-mobile-menu-header">
<div class="site-mobile-menu-close mt-3">
<span class="icon-close2 js-menu-toggle"></span>
</div>
</div>
<div class="site-mobile-menu-body"></div>
</div>
<div class="top-bar py-1" id="home-section" style="background-color: black!important;">
<div class="container">
<div class="row">
<div class="col-6 text-left">
</div>
<div class="col-6">
<p class="mb-0 float-right">
<span><a href="login.jsp" id="login" style="color:white;" > Login</a></span>
<span><a href="" id="logout" style="color:white;">Logout</a></span>
</p>
</div>
</div>
</div>
</div>
<header class="site-navbar py-4 bg-white js-sticky-header site-navbar-target" role="banner">
<div class="container">
<div class="row align-items-center">
<div class="col-6 col-xl-2">
<h1 class="mb-0 site-logo"><a href="index.html" class="text-black h2 mb-0"><img src="images/MarketingKnowledgeHub.png" width="200px"> </a></h1>
</div>
<div class="col-12 col-md-10 d-none d-xl-block">
<nav class="site-navigation position-relative text-right" role="navigation">
<ul class="site-menu main-menu js-clone-nav mr-auto d-none d-lg-block">
<li><a href="index.jsp" class="nav-link">Home</a></li>
<li><a href="index.jsp#res-section" class="nav-link">Resources</a></li>
<li><a href="contact.jsp#contact-section" class="nav-link">Contact Us</a></li>
</ul>
</nav>
</div>
<div class="col-6 d-inline-block d-xl-none ml-md-0 py-3" style="position: relative; top: 3px;"><a href="#" class="site-menu-toggle js-menu-toggle text-black float-right"><span class="icon-menu h3"></span></a></div>
</div>
</div>
</header>
<br><br><br>
<div class="py-5 bg-light">
<div class="container">
<div class="row">
<div class="col-lg-3"></div>
<div class="col-md-12 col-lg-12 mb-5">
<h2 class="text-center"> Admin Options </h2><br/>
<div class="bg-white text-center" style="box-shadow: 5px 10px 18px #888888;">
<br/><br/><br/>
<div class="col-lg-12 col-md-12">
<div class="row">
<div class="col-md-3"></div>
<div class="col-md-3">
<a href="addnewresource.jsp?email=<%= user %>" id=""><button class="d-inline-block p-2 bg-primary text-white btn btn-primary" style="margin:5px;">Add New Resource</button></a>
</div>
<div class="col-md-3">
<a href="resourceList.jsp?email=<%= user %>"><button class="d-inline-block p-2 bg-primary text-white btn btn-primary" style="margin:5px;">Modify resources</button></a>
</div>
<div class="col-md-3"></div>
</div>
</div>
<br/><br/><br/>
</div>
</div>
<div class="col-lg-3"></div>
</div>
</div>
</div>
<footer class="site-footer">
<div class="container">
<div class="row">
<div class="col-md-9">
<div class="row">
<div class="col-md-5">
<img alt="logo" src="images/MarketingKnowledgeHubFooter.png" width="250px" class="align-center" style="display: block;margin-left: auto;margin-right: auto;">
</div>
<div class="col-md-3 ml-auto">
<h2 class="footer-heading mb-4">Quick Links</h2>
<ul class="list-unstyled">
<li><a href="index.jsp">Home</a></li>
<li><a href="index.jsp#res-section">Resources</a></li>
<li><a href="contact.jsp">Contact Us</a></li>
</ul>
</div>
<div class="col-md-4">
<h2 class="footer-heading mb-4">Location</h2>
<p>1000 N West St Suite 12000,Wilmington,DE 19801,USA.
Phone: +1-646-591-9271</p>
</div>
</div>
</div>
<div class="col-md-2">
<h2 class="footer-heading mb-4">Get in touch</h2>
<form action="#" method="post" class="footer-subscribe">
<div class="input-group mb-3">
<p>info@marketingknowledgehub.com</p>
</div>
</div>
</form>
</div>
</div>
<div class="row pt-5 mt-5 text-center">
<div class="col-md-12">
<div class="border-top pt-5">
<p>All Rights Reserved. Copyright © 2019 marketingknowledgehub.com | <a href="files/privacypolicy.pdf" target="_blank">Privacy Policy</a> </p>
<p> Powered By,<a href="https://machbizz.com" target="_blank">MachBizz.com</a> </p>
</div>
</div>
</div>
</div>
</footer>
</div> <!-- .site-wrap -->
<script src="js/jquery-3.3.1.min.js"></script>
<script src="js/jquery-migrate-3.0.1.min.js"></script>
<script src="js/jquery-ui.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.stellar.min.js"></script>
<script src="js/jquery.countdown.min.js"></script>
<script src="js/jquery.easing.1.3.js"></script>
<script src="js/aos.js"></script>
<script src="js/jquery.fancybox.min.js"></script>
<script src="js/jquery.sticky.js"></script>
<script src="js/main.js"></script>
<Script>
var s ='<%=user%>';
var element_out = document.getElementById('logout');
var element_in = document.getElementById('login');
if(s != null && s != "null"){
element_out.style.display='block';
element_in.style.display='none';
}else{
element_in.style.display='block';
element_out.style.display='none';
}
</script>
<script>
$("#logout").click(function(e) {
e.preventDefault();
$.ajax({
type: "POST",url: "LogoutControl",success: function() {
window.location.href="login.jsp";
},error: function() {
window.location.href="login.jsp";
}
});
});
</script>
</body>
</html>