pageContext 获取Session 为null原因

本文深入探讨了在J2EE应用中自定义标签无法获取session的原因,主要关注于在特定JSP页面中禁用session的情况。通过详细解释页面头部声明如何影响session的可用性,帮助开发者理解并解决这一常见问题。

问题:在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

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值