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

被折叠的 条评论
为什么被折叠?



