当我提交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>
答案 0 :(得分:2)
jsp页面中的if语句有问题。
if(session == null && session.getAttribute("email") == null)
根据您的if语句,如果session
为null,并且页面在会话为null时正在检查属性,并且在任何地方都没有提及变量session
,则页面将被重定向在sessionManagement.jsp
中。
要记住的另一件事是,在jsp页面中,
HttpSession
永远不会是null
。
替换您的if语句。
if(request.getSession().getAttribute("email") == null){
response.sendRedirect("index.jsp");
return;
}