问题:在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 |
时间: 2024-12-28 12:57:40