jsp中的Java代码语句在包含在其他jsp文件中时不执行

时间:2017-01-18 09:44:31

标签: java jsp servlets

我的项目中有一个文件夹,并且该文件夹中有一些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中时,它的工作方式却不同。

1 个答案:

答案 0 :(得分:3)

您正在使用

进行动态包含
 <jsp:include page="....

尝试这种语法

<%@ include file="/WEB-INF/jsp/SessionValidate.jsp" %>