GetSession(false)在JSP页面第一次访问为什么不是Null,按照Servlet Specification 2.4应该为Null。由于前两年在做业务网站后台程序时,为了防止刷新数据重复提交,导致数据库异常的问题时,我查阅资料,亲自实现了令牌机制。所以我对这个理解才有一个深刻理解。JSP页面会交给Tomcat容器编译成Servlet,Servlet会生成一个像 public void_jspService(HttpServletRequest req,HttpServletRespose res)的方法,在这个方法中用到了getSession()方法,这个方法相当于调用了getSession(true),就是当前会话不存在就创建,所以你在访问JSP页面时,在页面调用Scriplet时,得到的是非NULL值。如果你不信可以在JSP页面中分别用session.getSession(false),和session.getSession()得到两个变量,打印出他们的HashCode(),值是一样的。另外说明的是由于JSP面面中使用的session非JSP声明变量(其实就是隐含变量),所以用到的session就是void_jspService中的session,是同一个对象的引用。
但如果把getSession(flase)放在一个Servlet中,第一次访问这个Servlet得到的是Null值。
如有不妥之处,欢迎提出宝贵意见.
注:
有些东西,不要看网上的,自己弄出来才是真本事。请不要枉驾评论。我的这篇文章其实也没有深奥的道理,但可以给新手一些帮助。
不要乱评别人,我不算新手,也不算成手。至今用过Spring,Hibernate,Xfire,Lucene,Struts等技术做过开发,三年多。这是一天没事,突然想起前两年做的东东,想把过程记录下来。
以后有时间,打算每有心得就写篇文章。
分享到:
相关推荐
### ACCP 二期JSP_servlet_javabean笔记 #### 一、Java EE架构概述与组件介绍 根据描述中的信息,“北大青鸟二期的笔记”涵盖了Java EE的基础概念及重要组成部分,包括显示层(示)、业务逻辑层(模)以及持久化层...
为了应对这一问题,本文将详细介绍一种基于Servlet实现的URL访问安全控制方案。 #### 二、需求分析 本方案的主要目标是防止未经授权的用户通过直接输入URL的方式访问系统中的页面或Servlet,从而避免他们绕过权限...
在本课程中,我们主要探讨了基于Jsp+Servlet+JavaBean技术的网上交易系统,这些技术是构建Web应用程序的基础。以下是对相关知识点的详细解释: **第一章:HTTP协议与表单提交** 1. **GET与POST的区别**: - GET...
文件上传下载是 Web 应用中的一种常见需求,使用 jsp 页面和 servlet 实现文件上传下载是其中的一种解决方案。下面将详细介绍 jsp、servlet 文件上传下载技术。 文件上传下载原理 文件上传下载的原理是将客户端的...
本文将详细介绍如何在Java Server Pages (JSP) 和 Servlet 技术的基础上,实现一个简单而实用的验证码图片生成工具。 #### 一、验证码的基本概念 验证码(CAPTCHA)是一种区分计算机和人类的方法,常用于验证用户...
在Web开发中,有时我们需要在同一个页面中结合使用不同的技术,比如JSP和Server Side Includes (SSI)。这两种技术都有它们各自的优势,例如SSI适用于静态内容的包含,而JSP则更擅长动态内容的处理。 - **如何在JSP...
Called by the servlet container to indicate to a servlet that the servlet is being taken out of service. DIGEST_AUTH - Static variable in interface javax.servlet.http.HttpServletRequest String ...
request.getSession(true).setAttribute("codes", vcode); for (int i = 0; i ; i++) { g2.setFont(new Font("Times New Roman", Font.HANGING_BASELINE, FontSize)); double rot = getRandomJiao(); // 旋转...
在Web开发中,JavaServer Pages(JSP)和Servlet是两种常用的服务器端技术。JSP主要用于展示动态内容,而Servlet则更专注于处理HTTP请求和响应。当涉及到用户登录功能时,这两者常常结合使用。本篇文章将深入探讨...
在Java Web开发中,`JSP` 和 `Servlet` 是两个关键组件,它们共同构建了动态Web应用程序。而`过滤器(Filter)`是Servlet API的一部分,它提供了一种机制来拦截请求和响应,实现诸如登录验证、字符编码转换、性能...
- 使用`request.getSession(false)`不会新建会话,而是尝试获取现有会话或返回null。 - `request.addCookie()`用于将Cookie添加到客户端。 6. 获取HTML表单数据 - 在Servlet中,使用`request.getParameter("参数...
7. 如何防止在JSP或SERVLET中的输出不被BROWSER保存在CACHE中? 把如下脚本加入到JSP文件的开始即可:("Cache-Control","no-store"); //HTTP 1.1response.setHeader("Pragma","no-cache"); //...
- **响应用户**:根据验证结果转发到不同的JSP页面。如果验证成功,则跳转到`welcome.html`页面;否则返回到登录页面`index.jsp`。 ##### 3.2 数据库连接与验证 - **加载驱动**:使用`Class.forName("oracle.jdbc....
7、如何防止在 JSP 或 SERVLET 中的输出不被 BROWSER 保存在 CACHE 中? 可以在JSP文件的开始处添加以下代码来防止浏览器缓存:("Cache-Control","no-store"); //HTTP 1.1 response.setHeader("Pragma","no-cache");...
自动重载技术允许开发者在不重启服务器的情况下修改并重新加载Servlet和JSP文件,这对于开发阶段非常有用。然而,在生产环境中,这项功能会导致额外的性能开销,因为它会增加类装载器的负担。 **具体实现:** ...
下载完成后,你会得到两个JAR文件:`Kaptcha-2.3.jar` 和 `Kaptcha-2.3-jdk1.4.jar`。 - **JDK1.4及以下版本**:使用 `Kaptcha-2.3-jdk1.4.jar` - **JDK1.5及以上版本**:使用 `Kaptcha-2.3.jar` ##### 2. 安装...
在Java服务器页面(JSP)中,我们通常会利用Servlet和Session技术来实现用户登录状态的判断。 首先,理解用户登录过程。当用户输入用户名和密码并提交后,后台服务器接收到请求,验证用户名和密码的正确性。如果...
这个Servlet的主要任务是接收这些登录凭据,验证它们,然后根据验证结果决定是否允许用户访问受保护的资源。 在Servlet中,我们通常会重写`doPost`或`doGet`方法,因为HTTP请求通常以POST或GET方式提交。以下是一个...