`
xpf7622
  • 浏览: 12017 次
社区版块
存档分类
最新评论

GetSession(false)在JSP和Servlet首次访问结果不同的问题--原创

    博客分类:
  • Java
阅读更多
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等技术做过开发,三年多。这是一天没事,突然想起前两年做的东东,想把过程记录下来。
以后有时间,打算每有心得就写篇文章。
分享到:
评论
7 楼 xpf7622 2008-04-25  
titanfoot  :请君给我看一下你自己写的文章。
另外,不管怎样,我不会把别人文章拿来,也不写上:摘自***,还要挂个原创的人强。
水平不够也罢,贵在可以坚持下去去写。
6 楼 xpf7622 2008-04-25  
再说两年前我就知道文章中的内容。并不是现在才知道。
我承认还有许多高峰要攀登,但并不象你们这样,看也不看,就否定别人。再说,如果有时间,我以后会继续写的。
我也不想和你争,毕竟言论自由。
5 楼 xpf7622 2008-04-25  
   再说两年前我就知道文章中的内容。并不是现在才知道。
   我承认还有许多高同要攀登,但并不象你们这样,看也不看,就否定别人。
   如果不认可的话,我以后会继续写文章的。
  我也不否认这样文章,发表文章言论自由,欢迎批评。
4 楼 titanfoot 2008-04-25  
戳中自己的软肋还不承认,

我觉得:具有1年jsp开发经验的人(稍微有点上进心的),早就知道这一点。

估计你是刚满1年?
3 楼 xpf7622 2008-04-25  
   这个我早就知道可以设置Session。请仔细看原文,谁都可以查看API知道getSession() ====getSession(true) 。没仔细看不要乱说。
   我强调的是JSP中和Servlet为什么不一样,也许题目没起好。
2 楼 titanfoot 2008-04-24  
这还叫原创赫赫?????


getSession() ====getSession(true)

getSession(false)

明白么?新手吧!嗬嗬!
1 楼 yiqingfeng 2008-04-16  
jsp页面可以设置是否需要启动session的

相关推荐

    ACCP 二期JSP_servlet_javabean笔记

    ### ACCP 二期JSP_servlet_javabean笔记 #### 一、Java EE架构概述与组件介绍 根据描述中的信息,“北大青鸟二期的笔记”涵盖了Java EE的基础概念及重要组成部分,包括显示层(示)、业务逻辑层(模)以及持久化层...

    基于Servlet的URL访问安全控制.doc

    为了应对这一问题,本文将详细介绍一种基于Servlet实现的URL访问安全控制方案。 #### 二、需求分析 本方案的主要目标是防止未经授权的用户通过直接输入URL的方式访问系统中的页面或Servlet,从而避免他们绕过权限...

    accp5.0 基于Jsp+Servlet+JavaBean的网上交易系统的课后理论答案.doc

    在本课程中,我们主要探讨了基于Jsp+Servlet+JavaBean技术的网上交易系统,这些技术是构建Web应用程序的基础。以下是对相关知识点的详细解释: **第一章:HTTP协议与表单提交** 1. **GET与POST的区别**: - GET...

    jsp,servlet上传下载文件

    文件上传下载是 Web 应用中的一种常见需求,使用 jsp 页面和 servlet 实现文件上传下载是其中的一种解决方案。下面将详细介绍 jsp、servlet 文件上传下载技术。 文件上传下载原理 文件上传下载的原理是将客户端的...

    JSP中利用Servlet生成验证码图片

    本文将详细介绍如何在Java Server Pages (JSP) 和 Servlet 技术的基础上,实现一个简单而实用的验证码图片生成工具。 #### 一、验证码的基本概念 验证码(CAPTCHA)是一种区分计算机和人类的方法,常用于验证用户...

    jsp常见问题

    在Web开发中,有时我们需要在同一个页面中结合使用不同的技术,比如JSP和Server Side Includes (SSI)。这两种技术都有它们各自的优势,例如SSI适用于静态内容的包含,而JSP则更擅长动态内容的处理。 - **如何在JSP...

    servlet2.4doc

    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 ...

    .jsp和servlet验证码

    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(); // 旋转...

    jsp 登录servlet

    在Web开发中,JavaServer Pages(JSP)和Servlet是两种常用的服务器端技术。JSP主要用于展示动态内容,而Servlet则更专注于处理HTTP请求和响应。当涉及到用户登录功能时,这两者常常结合使用。本篇文章将深入探讨...

    jsp servlet过滤器,登陆验证 获取session

    在Java Web开发中,`JSP` 和 `Servlet` 是两个关键组件,它们共同构建了动态Web应用程序。而`过滤器(Filter)`是Servlet API的一部分,它提供了一种机制来拦截请求和响应,实现诸如登录验证、字符编码转换、性能...

    jsp试题加答案

    - 使用`request.getSession(false)`不会新建会话,而是尝试获取现有会话或返回null。 - `request.addCookie()`用于将Cookie添加到客户端。 6. 获取HTML表单数据 - 在Servlet中,使用`request.getParameter("参数...

    JSP常见问题

    7. 如何防止在JSP或SERVLET中的输出不被BROWSER保存在CACHE中? 把如下脚本加入到JSP文件的开始即可:("Cache-Control","no-store"); //HTTP 1.1response.setHeader("Pragma","no-cache"); //...

    servlet_jdbc

    - **响应用户**:根据验证结果转发到不同的JSP页面。如果验证成功,则跳转到`welcome.html`页面;否则返回到登录页面`index.jsp`。 ##### 3.2 数据库连接与验证 - **加载驱动**:使用`Class.forName("oracle.jdbc....

    jsp经典面试题!!!

    7、如何防止在 JSP 或 SERVLET 中的输出不被 BROWSER 保存在 CACHE 中? 可以在JSP文件的开始处添加以下代码来防止浏览器缓存:("Cache-Control","no-store"); //HTTP 1.1 response.setHeader("Pragma","no-cache");...

    提升JSP性能技巧

    自动重载技术允许开发者在不重启服务器的情况下修改并重新加载Servlet和JSP文件,这对于开发阶段非常有用。然而,在生产环境中,这项功能会导致额外的性能开销,因为它会增加类装载器的负担。 **具体实现:** ...

    原创-用Ajax制作带图形验证码的登录页面.

    下载完成后,你会得到两个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. 安装...

    jsp 判断是否登录

    在Java服务器页面(JSP)中,我们通常会利用Servlet和Session技术来实现用户登录状态的判断。 首先,理解用户登录过程。当用户输入用户名和密码并提交后,后台服务器接收到请求,验证用户名和密码的正确性。如果...

    servlet页面验证用户名密码

    这个Servlet的主要任务是接收这些登录凭据,验证它们,然后根据验证结果决定是否允许用户访问受保护的资源。 在Servlet中,我们通常会重写`doPost`或`doGet`方法,因为HTTP请求通常以POST或GET方式提交。以下是一个...

Global site tag (gtag.js) - Google Analytics