我的项目中有一个文件夹,并且该文件夹中有一些jsp文件,我想检查每个页面上的有效会话。所以我创建了一个JSP文件,其中包含会话检查代码,在web-inf文件夹中,并将该文件包含到其他jsp文件中,但代码正在执行但是response.sendRedirect()无效。
所以我的Admin文件夹包含所有文件,WEB-INF / jsp / SessionValidate.jsp文件(此文件必须包含在admin文件夹的文件中。请参阅代码中的注释
管理/ xyz.jsp
<jsp:include page="/WEB-INF/jsp/SessionValidate.jsp"></jsp:include>
WEB-INF / JSP / SessionValidate.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%
if(session.getAttribute("Roles")==null){
response.sendRedirect("/Shopping/Login");
<!-- response.sendRedirect(..) -->
System.out.println("hello2");
<!-- Hello is printing -->
}
else{
if(!session.getAttribute("Roles").equals("ADM")){
response.sendRedirect("/Shopping/User");
}
else{%>
<jsp:include page="/WEB-INF/jsp/admin.jsp"></jsp:include>
<%}
}%>
因此,当我将此代码直接粘贴到xyz.jsp中时,它的工作方式却不同。
答案 0 :(得分:3)
您正在使用
进行动态包含 <jsp:include page="....
尝试这种语法
<%@ include file="/WEB-INF/jsp/SessionValidate.jsp" %>