首页 > 代码库 > pageContext 获取Session 为null原因

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

 


pageContext 获取Session 为null原因