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

时间: 2024-12-28 12:57:40

pageContext 获取Session 为null原因的相关文章

解决在构造函数中使用Session,Session为null的问题

问题描述: public abstract class PageBase : System.Web.UI.Page 在PageBase中如何使用Session??? 我直接用 Session["Name"] 提示:只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态.还请确保在应用程序配置的 <configuration>\<system.web>\<httpModules> 节中包括 S

有关获取session属性时报nullPointException(空指针异常)的解决方案

一般我们在从session中获取数据时,需要先进行赋值,也就是必须先进行session.setAttribute(String,Object)方法进行赋值,然后我们才能从session中获取内容,但是有时我们需要在一开始的时候进行获取,然后对获取的内容进行判断,若有值则使用这个值,若没有则赋初值(最常见的就是在做计数器的时候)代码如下: int count = (Integer)session.getAttribute("count"); 如上代码中如果原本session中本没有任何内

SpringMVC - controller中获取session

平时使用springMVC 在方法中访问session中经常很自然地调用Servlet API. 用起来非常直观方便,一直没有多考虑什么. 比如这样: @RequestMapping(value = "/logout") public String logout(HttpSession session) { session.removeAttribute("user"); return "/login"; } 但毕竟这样对Servlet API产

spring MVC 如何获取session并实现传值到前台

后台获取session: @RequestMapping("/usrlogin") public ModelAndView usrlogin(@RequestParam String usrid, @RequestParam String passwd) { HttpSession session = getSession(); User user = new User(); user = userMapper.getUserByUsridAndPasswd(usrid, passwd

SQLServer中使用扩展事件获取Session级别的等待信息以及SQLServer 2016中Session级别等待信息的增强

本文出处:http://www.cnblogs.com/wy123/p/6835939.html 什么是等待 简单说明一下什么是等待:当应用程序对SQL Server发起一个Session请求的时候,这个Session请求在数据库中执行的过程中会申请其所需要的资源,比如可能会申请内存资源,表上的锁资源,物理IO资源,网络资源等等,如果当前Session运行过程中需要申请的某些资源无法立即得到满足,就会产生等待.SQL Server会以不用的方式来展现这个等待信息,比活动Session的等待信息,

Hibernate5-进阶添加工具类,对获取Session的方法封装

1.创建项目,项目名称hibernatedemo3,目录结构如图所示 2.在项目中创建lib目录存储jar文件,目录结构如图所示 3.在src目录中创建实体Bean Forum,包名(com.mycompany.demo.bean),如图所示 4.实体Bean Forum的内容如下 package com.mycompany.demo.bean; public class Forum { private int fid; private String name; public Forum() {

spring MVC如何获取session传值到前台

Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务. 后台获取session: @RequestMapping("/usrlogin")           public ModelAndV

一般处理程序设置Session cs 文件获取session

using System;using System.Web;using System.Web.SessionState; //第一步:导入此命名空间public class 类名 : IHttpHandler ,IRequiresSessionState //第二步:实现接口 到此就可以像平时一样用Session了{} 在自定义类库CS文件里使用System.Web.HttpContext.Current.Session获取Session时提示错误:未将对象引用设置到对象的实例.一般情况下通过这

怎么在ashx页面获取Session值

在一般事务处理页面,可以轻松的得到 Request,Response对象,从而进行相应的操作,如下: HttpRequest Request = context.Request; HttpResponse Response = context.Response; 但是要得到 Session的值就没有那么简单了.比如你要在ashx得到保存在Session中的登录帐号Session["userAccount"] 如果你只是context.Session["userAccount&