【问题标题】:Session Handling is Not working in JSP Page?会话处理在 JSP 页面中不起作用?
【发布时间】:2019-01-25 09:51:51
【问题描述】:

当我提交一个存在于 Index.jsp 中的表单时,它会转到 Home.jsp 页面,如果注销它也会重定向到 Index.jsp 页面。但是当我尝试在没有登录的情况下访问 Home.jsp 页面时显示错误。理想情况下,它应该重定向到 Index .jsp 页面,因为会话在


Home.jsp

<%@page import="com.bean.UsersBean"%>
<%@page import="com.util.DAO"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<script
    src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="JS/General.js"></script>
<script
    src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script
    src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>

<link rel="stylesheet"
    href="https://use.fontawesome.com/releases/v5.1.1/css/all.css"
    integrity="sha384-O8whS3fhG2OnA5Kas0Y9l3cfpmYjapjI0E4theH4iuMD+pLhbf6JI0jIMfYcK3yZ"
    crossorigin="anonymous">
<link rel="stylesheet"
    href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet"
    href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
<link rel="stylesheet" href="CSS/General.css" content="text/css">

<title>Insert title here</title>
</head>
<body style="background-color: grey">
<%@include file="sessionManagement.jsp"%>
    <%
            String email =session.getAttribute("email").toString();
            String password =session.getAttribute("pwd").toString();
            System.out.println(email + " JSP");
            System.out.println(password + " JSP");
            UsersBean obj = DAO.login(email, password);
            //System.out.println(obj.getProfile()); 
    %>

在此之后,我使用了这个 obj 在页面中显示用户的一些详细信息。


sessionManagement.jsp 页面代码

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<% if(session==null && session.getAttribute("email")==null)
        response.sendRedirect("Index.jsp");

    %>  
</body>

【问题讨论】:

    标签: java jsp


    【解决方案1】:

    你的jsp页面中的if语句有问题。

    if(session == null && session.getAttribute("email") == null)
    

    根据您的 if 语句,如果 session 为空,则页面将被重定向,并且您在会话为空时检查属性,并且您在 sessionManagement.jsp 的任何地方都没有提到变量 session .

    要记住的另一件事是,在 jsp 页面中,HttpSession 永远不会是 null


    替换你的 if 语句。

    if(request.getSession().getAttribute("email") == null){
        response.sendRedirect("index.jsp");
        return;
    }
    

    【讨论】:

      猜你喜欢
      • 2013-09-22
      • 2012-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-25
      相关资源
      最近更新 更多