我的项目中有一个文件夹,该文件夹中有一些 jsp 文件,我想检查每个页面上的有效 session 。所以我在 web-inf 文件夹中创建了一个包含 session 检查代码的 JSP 文件,并将该文件包含到其他 jsp 文件中,但代码正在执行但 response.sendRedirect() 不起作用。
所以我有包含所有文件的 Admin 文件夹,WEB-INF/jsp/SessionValidate.jsp 文件(此文件必须包含在 admin 文件夹的文件中。请参阅代码中的注释
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 中时,它可以正常工作,但不是这样。
最佳答案
你正在做一个动态包含
<jsp:include page="....
试试这个语法
<%@ include file="/WEB-INF/jsp/SessionValidate.jsp" %>
关于当包含在其他 jsp 文件中时,jsp 中的 Java 代码语句不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41715984/