servlet setattribute用法_servlet禁用session

servlet setattribute用法_servlet禁用session这两天一直在做手机验证码的工作,ajax一下子就连通了,但是session存放发送给手机的随机验证码就无法读出来了(其实不是无法读出来,往下看),导致无法验证用户填写的手机验证码,于是我查了session的一些过期设置,还一度怀疑setMaxInteractiveInterval()的参数单位是不是毫秒。弄了下个下午之后实在受不了,我一直往session是不是第二次请求action时就过期了的方向去

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

这两天一直在做手机验证码的工作,ajax一下子就连通了,但是session存放发送给手机的随机验证码就无法读出来了(其实不是无法读出来,往下看),导致无法验证用户填写的手机验证码,于是我查了session的一些过期设置,还一度怀疑setMaxInteractiveInterval()的参数单位是不是毫秒。

弄了下个下午之后实在受不了,我一直往session是不是第二次请求action时就过期了的方向去思考,后来在别人的提醒下又研究了一下getSession(true)和getSession(false)的区别(默认缺省为true,表示试图获取存在的session,当session不存在时重新创建一个新的session返回,参数为false时则是尝试返回存在的session,当session实在不存在时返回null)。通过简单的if-else判断后发现上一次action操作session的确是仍然存活的,但程序就是在比较用户填写的验证码和session保存的系统发送的验证码时“卡了”,不往下执行了。
假设verify_code是1000,用户输入的inputCode也是1000

if(inputCode.equals(session.getAttribute("verify_code"))){
    System.out.println("1000==1000");
}
else{
    System.out.println("1000!=1000");
}

打印结果为1000!=1000,令人奔溃,跪了

尝试将对session.getAttribute(“verify_code”)的值进行强制转换,控制台没有任何打印输出,当然前台ajax也没有任何返回信息。

if(inputCode.equals((String)session.getAttribute("verify_code"))){
    System.out.println("1000==1000");
}
else{
    System.out.println("1000!=1000");
}

最后,实在受不了了,祭出大杀器,try-catch,加上后,才看到,不是程序“卡了”,原来是程序已经抛出异常了,类型转换异常,这时才想起,当初我往session存值的时候直接存的是生成四位int类型的数值,action用于接收用户填写的验证码当然是String类型,于是就出来了上面1000!=1000的结果。

所以,在存放已发送的验证码时在值后面加上“ +“””,问题就解决了。setAttribute()存的数据是什么类型,getAttribute()只能强制转换为什么类型。

最后总结一下,还是基础不扎实,还是要多做项目,多练手,写java代码时,要养成使用try-catch的习惯,遇到难题,就要用打印暴力调试,然后结合程序的逻辑进行思考。解决问题后,又是美好的一天。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183304.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 怎样用python画爱心_女生节前夕特别篇:如何用python画爱心[通俗易懂]

    怎样用python画爱心_女生节前夕特别篇:如何用python画爱心[通俗易懂]亲爱的男生们:展信佳!明天就是女生节了,你们是否还在为送什么而焦头烂额,是否还在俗套地沿用着前辈们的套路。挂横幅——让女生们梦回八九十年代的大学生活?拍视频——加入抖音快手之流?送礼物——非常棒!!可惜没钱?如何能够送出实惠而又有逼格的礼物?今天,我就给大家隆重地介绍一个简单而又高大上的方法——用python来制作一个爱心!!你可能会问,太难了,我不会python怎么办?不要怕,超级简单的,相信我…

    2025年9月24日
    4
  • C语言fread函数_C语言fread

    C语言fread函数_C语言freadc语言中fread函数C语言中的fread()函数(fread()functioninC)Prototype:原型:size_tfread(void*buffer,size_tlength,size_tcount,FILE*filename);Parameters:参数:void*buffer,size_tlength,si…

    2025年11月4日
    5
  • webstorm激活码2019(注册激活)

    (webstorm激活码2019)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月29日
    583
  • 京东静态网页设计案例(1)

    京东静态网页设计案例(1)一、准备步骤以京东网页为设计案例,使用HTML和CSS进行设计,首先要在头部<head>文件中加入<link>对CSS文件里加入的两个CSS代码文件进行链接,一个是设置格式的代码,另一个是下载的图标库代码。示例代码如下:<linkrel="stylesheet"href="./css/index.css"/><linkrel="s…

    2025年9月12日
    5
  • vue支持es6_vue2转vue3

    vue支持es6_vue2转vue3转载:Vue2.0ES6语法降级ES5由于部分低版本的手机还不支持ES6语法,将会导致vue报错。综合了网上的各种办法,我的项目现在终于成功降级ES5.首先安装插件npminstall-Dbabel-preset-es2015babel-corebabel-preset-stage-2babel-loader编辑配置文件…

    2022年9月25日
    1
  • 渗透测试文章_黑客秘笈-渗透测试实用指南

    渗透测试文章_黑客秘笈-渗透测试实用指南【拿shell】1.直接上传aspasajspcerphpaspxhtrcdx格式的木马,不行就利用IIS6.0解析漏洞”:1.asp;1.jpg/1.asp;.jpg/1.asp;jpg/1.asp;.xls2.上传图片木马遇到拦截系统,连图片木马都上传不了,记事本打开图片木马在代码最前面加上gif89a,一般就能逃过拦截系统了。3.上传图片木马把地址复制到…

    2022年9月21日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号