解决requestgetParameter获取参数值为空时的判断处理
request.getParameter取值后if判断为NULL
在开发过程中,你有没有遇到过这种情况:从上一个页面传过来的参数,明明看着名字是对的,可就是用request.getParameter取不到值,或者用if判断时死活进不了条件分支?这事儿还挺常见的,尤其是对于刚接触Web开发的朋友来说。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
举个具体的例子,当时我需要处理一个从Auto_space_time.jsp页面提交到Auto_space_time_ok.jsp的数据。业务逻辑很简单:当单位(danwei)等于“学校”时,就把状态(zhuangtai)的值赋给另一个变量(zhengzhuang)。听起来挺 straightforward 的吧?

开始时,用语句判断
我的第一反应是这样写:
if(danwei = "学校") zhengzhuang = zhuangtai;
结果呢?一运行,打印出来的zhengzhuang赫然是null。
System.out.print(zhengzhuang);
问题出在哪?折腾了一番之后,我把判断语句改成了这样:
if( "学校".equals(danwei)) zhengzhuang = zhuangtai;
就这么一调换,问题迎刃而解。
查明原因
这背后的原理其实是一个经典的“坑”。对于byte、short、int、float这些基本数据类型,比较它们是否相等,用==是完全正确的,因为它比较的就是数值本身。
但是,对于像String、Integer、Date这样的复合数据类型(也就是类),情况就不同了。当你使用==时,它比较的是两个对象在内存中的地址是否相同,而不是它们所代表的“内容”是否相同。而.equals()方法,才是被设计用来比较对象内容的。所以,比较字符串是否相等,一定要用"常量".equals(变量)这种形式,不仅安全(能避免空指针异常),而且才是正确的逻辑比较。
servlet中request.getParameter得到null的几个可能
上面说的是取值后的判断问题。但更多时候,烦恼来源于根本取不到值——request.getParameter直接返回了null。尤其是在JSP表单提交到Servlet的场景里,以下几个地方是检查的重灾区。
可能性一
最容易被忽视的:input标签缺少name属性。
很多人会精心设置id和value,却忘了最关键的那个属性。记住,表单提交时,Servlet是通过input标签的name属性值来获取数据的,跟id没有关系。value属性只是预设值,有没有都不影响获取。
正确的写法是这样的:
可能性二
路径对不上:form的action与Servlet注解不匹配。
表单说要提交到“A地址”,但你的Servlet却监听在“B地址”,那自然收不到请求。务必核对form标签的action属性值,和Servlet类上用@WebServlet注解指定的URL模式是否完全一致。
可能性三
方法用错了:表单提交方式应为POST。
虽然GET方式也能提交表单数据,但在处理数据修改(尤其是涉及数据库操作)时,强烈建议使用POST方式。这不仅更符合HTTP语义,也能避免一些潜在的问题。检查一下你的form标签:
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
Notepad++批量修改文件后缀名脚本使用教程
Notepad++无法直接批量修改文件后缀,通常需借助插件调用系统命令实现。对于简单情况,可使用NppExec插件配合cmd命令处理;若涉及多层目录或复杂条件,则建议编写Python脚本进行递归操作。需注意文件占用可能导致失败,且修改后缀可能影响系统关联和编辑器识别。
Linux下Rust代码编译问题排查与解决指南
在Linux中,如果Rust编译出错,你可以按照以下步骤进行排查和解决: 阅读错误信息: Rust编译器给出的错误信息通常非常详实,不仅会标明错误类型,还会精确到文件和行号。第一步,务必静下心来仔细读一读这些提示,它们往往能直接帮你定位到问题的根源。 检查代码语法: Rust的语法规则相对严谨,有时
Ubuntu系统JSP代码优化方法与实战技巧
Ubuntu上JSP代码与运行时一体化优化指南 想让老派的JSP应用在Ubuntu上跑得又快又稳?这事儿不单是写写代码就行,得从代码、配置到运行时整个链路都做通盘考虑。下面这份优化指南,就是给这类项目开的一剂综合药方。 一 代码与页面层优化 这一层的核心思路是“各司其职”,让前端页面和后端逻辑都回归
Docker与常见技术栈集成方法及实践指南
Linux Docker 的常见集成方式 玩转Docker容器,如果只是单打独斗,那可有点小瞧它了。它真正的潜力,往往在于与生态中其他“伙伴”的紧密协作。通过灵活的集成,它能迸发出远超单个工具的能量。下面这几种常见的组合拳,或许能帮你打开新思路。 1 Kubernetes:不只是编排,更是自动化管
Linux vsFTP性能评测与主流FTP服务器软件对比分析
Linux vsftpd 性能对比与选型建议 结论与定位 当我们谈论面向高并发、长时间稳定运行的生产级FTP服务时,一个名字总是绕不开:vsftpd。在相同的硬件与网络舞台上,这款服务器以其极致的轻量与稳定,展现了令人印象深刻的实力。社区的多项测试与资料显示,它在单机(非集群)部署下就能轻松撑起40
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

