pageContext 获取Session 为null原因

问题:在J2EE应用中。发如今自己定义标签中取不到session:

HttpSession session = pageContext.getSession();

你会发现session的值可能是空的。


原因:在标签所在的JSP页面中禁用了Session,见红色字体部分,比如以下是一个JSP页面头的声明:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"session="false"%>

若在这个页面内包括有一个自己定义标签,这在自己定义标签中session不能获取到:

   public int doStartTag() throws JspException {
        try {

            HttpSession sess = pageContext.getSession();


        //下面内容略   
  }



附:JSP内置对象映射表

对象名

类型

作用域

request

javax.servlet.ServletRequest

Request

response

javax.servlet.ServletResponse

Page

pageContext

javax.servlet.jsp.PageContxt

Page

session

javax.servlet.http.HttpSession

Session

application

javax.servlet.ServletContext

Application

out

javax.servlet.jsp.JspWriter

Page

config

javax.servlet.ServletConfig

Page

page

java.lang.Object

Page

exception

java.lang.Throwable

Page

 


原文地址:https://www.cnblogs.com/gccbuaa/p/7160582.html