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

标签 java jsp servlets

我的项目中有一个文件夹,该文件夹中有一些 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/

相关文章:

java - 将 @Sort 注释与 List<Object> 一起使用

java - 如何使用一些隐藏参数从 Servlet 重定向到第三方 url

java - spring出错时保留textbox的值

java - Java 的最佳配置文件

java - JSP - Servlet 未正确转发到 JSP

java - 什么使 "interface name"与 "class name"不同?

java - JTable对象[][]数据

jsp - JSP/Servlet 中的倒计时器

java - 更新在 init() 内部初始化的 Map 对象以及来自 sql 表的值

java - @ManyToMany JPA 2 复杂查询