关于HttpServletRequest接口的getSession方法,在页面提交请求到servlet时,用getSession(false)返回的却是一个session对象而不是null的问题。
getSession有两种方法,一个有参的、一个是无参的。
getSession()与getSession(true)一样,获取request对象关联的session对象,如果没有session,则返回一个新的session。
getSession(false)也是返回一个request对象关联的session对象,但如果没有session,则返回null。
Java EE 5 API中的定义:
HttpSession getSession(boolean create)
Returns the current HttpSession
associated with this request or, if there is no current session and create
is true, returns a new session.
If create
is false
and the request has no valid HttpSession
, this method returns null
.
在Jsp页面提交表单到servlet时,在servlet中调用getSession(false)时却返回了一个session,而不是null。
原因是Jsp页面会默认创建session对象,即<@page session="true">,默认是true,如果手动将session设为false,则jsp不会创建session对象,页面也就不可以直接使用session对象。这样提交到servlet,用方法getSession(false)返回的就是null。
分享到:
相关推荐
HttpServletRequest-response方法总结 HttpServletRequest和HttpServletResponse是Servlet编程中两个最重要的接口,它们提供了对HTTP请求和响应的控制和处理。下面是对HttpServletRequest和HttpServletResponse的...
在Java Web开发中,`HttpServletRequest`对象是用于处理HTTP请求的核心接口,它提供了多种方法来与服务器端的会话(Session)进行交互。`request.getSession()`方法及其变体是其中的关键之一,用于获取或创建与当前...
这个接口提供了许多方法来获取请求的相关信息,包括请求参数、请求头、请求路径等。下面将详细介绍`HttpServletRequest`的一些常用方法及其应用场景。 1. **获取请求URL和Referer** `HttpServletRequest` 提供了 `...
在Java Web开发中,`HttpServletRequest`接口提供了`getSession()`方法,用于获取或创建HTTP会话(Session)。理解`getSession(false)`的行为至关重要,因为它直接影响到会话管理的效率和正确性。下面将详细阐述`...
在Java Web开发中,`HttpServletRequest`和`HttpServletResponse`是两个至关重要的接口,它们是Java Servlet API的核心组成部分,用于处理客户端(通常是Web浏览器)与服务器之间的HTTP通信。这两个接口提供了丰富的...
HttpServletRequest接口提供了处理HTTP请求所需的各种功能。通过这个接口,你可以获取请求中的参数、头信息、Cookie等数据。例如,`getParameter(String name)`用于获取指定名称的请求参数值,`getHeader(String ...
Servlet可以通过HttpServletRequest的`getSession()`方法来访问或创建HttpSession,用于跟踪用户会话。 7. **RequestDispatcher接口**: 提供了转发和包含请求的能力,例如`request.getRequestDispatcher(String ...
运用javax.servlet.http.HttpServletRequest接口的sendRedirect方法 B.运用javax.servlet.http.HttpServletResponse接口的sendRedirect方法 解析:重定向是客户端行为,使用HttpServletResponse接口的sendRedirect...
3. **HttpServletRequest接口**:代表客户端的HTTP请求,提供了获取请求参数、头信息、请求URL等方法。 4. **HttpServletResponse接口**:用于构建服务器对HTTP请求的响应,包括设置响应状态码、头信息,以及将数据...
Servlet接口是Servlet规范中的核心部分,它定义了Servlet组件的行为和生命周期方法。一个典型的Servlet需要实现以下方法: 1. **init(ServletConfig config)**:初始化方法,在Servlet实例创建后首次被容器调用。此...
6. **HttpServletRequest接口**:表示来自客户端的HTTP请求,提供了获取请求头、参数、路径信息以及读取请求体的方法。 7. **HttpServletResponse接口**:用于构建HTTP响应,包括设置状态码、添加头信息、写入响应...
1. 在 J2EE 中,HttpServletRequest 类的 getSession 方法用于创建对话。HttpSession 是一种服务器端的会话机制,用于存储用户的会话信息。 2. 在 Servlet 中,setAttribute 方法用于设置请求属性,setAttribute ...
3. **会话管理**:在Web应用中,HttpServletRequest的getSession方法用于获取或创建会话。通过getSession(true),即使没有现成的Session,也会创建新的;getSession(false)则仅在存在Session时返回,否则为null。不...
Servlet可以使用HttpServletRequest的getSession方法获取或创建HttpSession对象,实现用户会话跟踪。会话对象可以存储用户的登录状态、购物车等信息,且在多个请求之间保持状态。 八、SCWCD认证 SCWCD(Sun ...
HttpServletRequest的getSession()方法创建或获取Session对象,HttpSession接口提供了管理会话状态的方法。 3.5 ServletContext接口 ServletContext接口代表整个Web应用的上下文,提供了在整个应用范围内共享数据...
HttpServletRequest接口提供了多种方法来获取HTTP请求的信息,例如请求参数、请求头、请求URI、请求方法等。通过`getParameter()`方法,我们可以获取URL中传递的参数值;`getHeader()`方法则用于获取请求头的信息;`...
我们可以通过HttpServletRequest的getSession()方法获取或创建一个新的会话。 六、Servlet的异步处理 Java Servlet 3.0引入了异步处理能力,使得Servlet可以在非阻塞模式下处理请求,提高了Web应用的性能。通过...
* Map getSession() : 返回 Map 对象,模拟 HttpSession 实例 * void setApplication(Map application) : 传入 Map 对象,转换成 application 对象的属性名和属性值 * void setSession(Map session) : 传入 Map 对象...
HttpSession session = httpServletRequest.getSession(); Object count = session.getServletContext().getAttribute("count"); return "count: " + count; } } ``` 然而,在实现过程中会遇到一些问题。例如,...