HTTP会话在带有httpd 2.4和mod_jk的tomcat 8上不起作用

在我的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 &mdash; 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>
wangzhufeng 回答:HTTP会话在带有httpd 2.4和mod_jk的tomcat 8上不起作用

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2926562.html

大家都在问