`
haofenglemon
  • 浏览: 244016 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java web 开发过程中常见的一些错误

    博客分类:
  • user
阅读更多
现在通常人们讨论和实现Java WEB应用时,往往过度关注框架和平台,对常见实现的各种模式未有深入的考虑。自从在IBM DevelopWork上见到一个名词"错误模式",就一直仔细研究和收集各种错误模式,现在就针对各WEB应用中最常见的增删改查,谈一下常碰到的错误模式。
增加、编辑时常见错误
1、没有进行,界面上的效验问题                           
   有人认为,这个不算错误,呵呵,那我也不说什么了。很多情况下,初学的人会完全忽略这一块,刚开始我就是的,还感觉这个就像程序把门的第一关口啊,最好能提前预防。
一般情况下,都是用javascript直接实现的,也有基于框架的后台验证,如DotNet和WebWork的验证器等。通用的方法,是充分发挥正则验证的潜力来解决好这一块。
2、后台效验问题    JS+RPC OR Server
前台的效验完毕后,往往还需要进行后台的逻辑效验,如检查是否重名等。一般是通过一组查询来实现的。因为只是只读的查询,个人认为,怎么实现都没关系。通常是在后台,提交数据库前验证。其实业可以通过ajax技术,在前台验证,随着技术的发展,我想还是通过AJAX统一到前台实现比较一致。
3、更新失败返回问题
更新失败的因素是多方面的,如数据连接断开等。往往,很多人都没有进行相关的保护,没有相应的提示,或者提示返回后,客户的输入就丢失了。这些都是应该仔细考虑并解决的问题,很可惜,再大量学习各类框架和平台后,相信很多人都没有仔细的在这一块加上那怕一点点保护。
4、编辑载入失败返回问题
这个是个比较初级的问题,不过确实出现过,还是写写,看看自己忘了不.....   
5、编辑载入,值还原问题,如回车丢失,空格丢失等
有时候,Html标签写的不好的时候,可能会丢值,如    回车,空格 ,<等符号
6、更新时,多步操作的事务保护机制不健全
这一点,本不该写在此处,不过,我一直觉得这是个很重要的问题,所以还是加上。也许有人会说,我用Hibernate,这个问题就不存在了.....还是要重视啊,我见过有初学者,没有很好的利用Hibernate的声明事务标签,或者根本不声明...... 而且多步操作不写在一个方法里面,也不用手工的事务控制...寒,其实有些项目我自己都没做到,因为各方面的原因@%^@#^@#^@^,悲哀ing.....
删除常见错误
1、找不到记录时错误
这个是个比较初级的问题,不过确实出现过,还是写写,看看自己忘了不.....
2、关联数据不能自动检查并返回信息
对于一些有关联的数据,应该通过检查机制保护破坏性的删除操作。   
3、自动删除关联数据
这个对于一些POJO设计得非常好的系统,完全不用考虑的,呵呵不过,大家还是要很清晰的了解这种删除的必要性,感觉初学者都忽略这些问题。
4、删除时没有清晰提示
通过JS保护只有一行代码,就可以给客户一个避免错误操作的机会,何乐而不为呢,用框架的同仁们,你们这么做了吗?实际的系统,用户不会忘了提这一点的。
查看时错误
1、找不到数据时错误
这个是个比较初级的问题,不过确实出现过,还是写写,看看自己忘了不.....
2、一些值得显示问题 如 回车、空格
  加几行转码的函数就可以避免,很多人忽略了,寒,如回车转为<BR>,空格转为 &nbsp;
3、下拉表单数据的回显问题 值-名对,显示值,而不显示名
下拉表单输入时,大家都有解决方案了,回显,就是一个查询,请加上吧,不要让自己眼睛不舒服。
分页浏览时错误
1、找不到数据时的正确返回
这个是个比较初级的问题,不过确实出现过,还是写写,看看自己忘了不.....
2、翻页后 条件保持问题(特别时有特殊字符时,如回车,"\"","\'"等)
要把条件传递到下一个页面阿....
3、翻页的效率问题
很多人没仔细考虑,比如我自己,刚用Hibernate时,直接用一个完全查询的HQL,取List.Count解决取总记录的方法,结果,发现,这个查询被执行了!!!现在改成一个专门取总行数的Count查询...当然用专门对数据库优化过的SQL和存储过程,永远是效率最高的方法
查询时错误
1、查询条件初始化问题
查询条件如日期等,为什么不给客户一个最常用的时间段呢,可以避免用户的操作
其实还有很多需要注意的细节容易出问题。如格式验证...只读字段的控制.等等
一个完整的增删改查应该有几个部分的代码
1.添加载入
控制添加数据的默认初始化值
在Struct或者WebWork中,就是一个Action +一个视图
2.添加提交
  将用户提交的新增数据,加入数据库
   在Struct或者WebWork中,就是一个Action
3.编辑载入
   从库中载入已有的某条数据方便编辑
   在Struct或者WebWork中,就是一个Action +一个视图
4.编辑提交
   将用户提交的修改数据,更新到库中
   在Struct或者WebWork中,就是一个Action
5.查看记录
      从库中载入已有的某条数据查看
      在Struct或者WebWork中,就是一个Action +一个视图
6.删除提交
     将用户指定的记录删除
     在Struct或者WebWork中,就是一个Action
7.载入查询
     初始化查询界面
     在Struct或者WebWork中,就是一个Action+一个View
8.查询提交
      接受查询界面的提交,并组合为查询结果发送给一个View
     在Struct或者WebWork中,就是一个Action+一个View
     也可以将请求转交给分页浏览页面
9.分页浏览
     根据查询条件和页号,显示特定数据页的数据
     在Struct或者WebWork中,就是一个Action+一个View
这里,我没有专门写出formBean,个人认为FormBean只是一个工具
当然根据情况各种Action 和View可以进行各种整合,不过个人觉得,不管如何组合,这几个环节都是很必要的,必须思路非常清晰才好。
附上我以前总结的一些常见的错误检查表,给同事看的...
******************************************************************************************************
JAVA WEB应用常见的错误
在本系统中一些常见Bug和对策


1.Null指针错误

A.引用的Bean未在 Hibernate配置文件,Spring配置文件中正确的配置

B.调用的Session及Request 未能正确的取到

C.对象未初始化,或者在传递中失去了,往往使webWork托管的对象出现这种问题

D.未正确的写上Getter,Setter方法

2.无任何提示的错误...
A.一般情况是HibernatePO执行的时候发生的错误,未将错误正确的抛出..

B.转入Error页面采用Redirect模式,错误信息不能显示

其他
A.WebWork Action中未找到对应的映射

B.在弹出窗口中,Session丢失

C.Tomcat,MYSQL乱码问题
     在WebWork值得注意的是URL传递的参数,需要手工用toCN转码
     Form传递的不需要

D.WebWork标签的引用问题,Map request并不是和request映射的那个对象
     有一个同名对象,但是类型是httpRequest的Request才是..

E.Hibernate查询书写出错

F.Delete方法使用出错

G.验证器使用出错

H.类型格式定义不正确..如日期时间型显示为日期型

I.在WebWork的JavaScript中,好像不好直接使用'和"符号,也许要HtmlEncode后,才能用??,还是要UrlEncode?

J.全角作主键时,传递异常...

K.JS 调试的时候,层次关系中,<!--注释-->也是一个子对象..

L.验证实现不精确..

M.再次注意,空值的包装问题,再webWork中自动处理了,用其他框架时,要充分考虑

N.JDO对象需要及时更新,并且要及时调整相关的Bean

O.缺少JDO请及时加上

1.纯JSP编写时发生的错误
一般是没有正确编译,将编译中的Java文件放到IDE中编译一下,就可以看到提示.
******************************************************************************************************
  

1、对Null字符进行String处理出错
产生原因:数据库中数据为空值,却用字符处理函数进行处理了
      后果:崩溃性错误
预防方法:
           A.给数据库中可能出现空值的字段,加上默认值
           B.提交时,用JS脚本进行验证
           C.在处理可能是空值的字符时,用CheckNullStr(vValue) 对数值进行保护处理
           D.对处理过程加上错误陷阱,防止出现崩溃性错误

2、传递参数时,"    '    等字符造成问题
产生原因:处理" '等字符时,和Html中使用 "    '     等冲突,造成数据传送失败
      后果:崩溃性错误
预防方法:
           A.统一" '等符号的使用模式和策略
      如 JS中,字符串用""包起来      ' 需要用 \'代替
          如传递查询参数时,其中可能有 ' 和 %    需要特别的处理,所以用""包字符串
           B.在不丢失数据的情况下,根据情况使用
              Server.HtmlEncode(vValue)
              Server.UrlEncode(vValue)
           C.对处理过程加上错误陷阱,防止出现崩溃性错误

3、数据库里面未设置主健
产生原因:构建数据库时,未设置主健,
      后果:造成查询时,RecordCount显示不正常,更新时得不到主健值,造成崩溃性错误
预防方法:
     A.建表时仔细检查主健是否建立,如没有一定要建立
           B.对处理过程加上错误陷阱,防止出现崩溃性错误

4、数据库里面字段范围设置太小
产生原因:字段设置太小
      后果:如发生越界情况,就造成崩溃性错误
预防方法:
           A.仔细考虑字段大小设置,如不是很密集的应用,可考虑尽量设置大一些
           B.对处理过程加上错误陷阱,防止出现崩溃性错误

5、处理各个模块,因为Copy 代码,所以显示的某些提示不准确
     如工作邮件,提示为工作任务等
产生原因:硬编码,Copy代码,粗心大意
      后果:用户感觉极差
预防方法:
           A.仔细检查,利用全文查找,Windows的功能就可以,还可以用FrontPage
           B.尽量使用一些比较模糊的提示语,可以具有通用性
           C.将某些特定的提示进行常量定义,统一替换


6、单位名称等不匹配
产生原因:硬编码,Copy代码,粗心大意
      后果:用户感觉极差
预防方法:
           A.仔细检查,利用全文查找,Windows的功能就可以,还可以用FrontPage
           B.对使用的特定图片检查
           C.将特定图片和文字进行登记
           C.将某些特定的名称进行常量定义,统一替换,尽量利用Customer等通用常量,避免硬编码

分享到:
评论

相关推荐

    java web开发过程中出现的一些诡异问题(2)

    在Java Web开发过程中,我们经常会遇到一些看似诡异但实际上有其内在原因的问题。这些问题可能是由于对技术理解不深入、代码编写不当或配置错误所导致的。本文将探讨几个常见的Java Web开发中的难题,并尝试提供解决...

    Java Web开发实践教程源码ch10

    在本Java Web开发实践教程源码的第10章中,我们将深入探讨Web应用程序的构建、部署和测试过程。这是一份丰富的学习资源,适用于初学者和有一定经验的开发者,旨在通过实例代码来深化理解Java Web开发的核心概念和...

    Java Web应用中常见的错误和异常问题处理.pdf

    在Java Web应用的开发过程中,软件架构通常采用分层思想,旨在降低模块间的耦合度,并增强模块的内聚性。这种设计思想虽然在一定程度上简化了系统的结构,但也使得软件的开发过程变得更为复杂,易于产生错误和异常,...

    java web开发中常遇到的问题

    在 Java Web 开发中,开发者经常会遇到一些棘手的问题,影响项目的进度和质量。在这篇文章中,我们将列举一些常见的问题,并对其进行解释和解决。 1. java.lang.IllegalArgumentException: node to traverse cannot...

    Tomcat与Java Web开发技术详解 第二版配套光盘源码

    5. **MVC(Model-View-Controller)模式**:在Java Web开发中,MVC是一种常见的设计模式,用于组织应用程序结构。通过源代码,读者可以学习如何使用Servlet作为Controller,JSP作为View,以及如何构建独立的Model...

    JAVA WEB开发实战经典培训【课堂笔记】

    Java Web开发是软件开发领域中的一个重要分支,它涵盖了使用Java语言进行Web应用程序的构建和部署。这份"JAVA WEB开发实战经典培训【课堂笔记】"是由MLDN李兴华提供的专业培训资料,主要以PDF格式记录了整个课程的...

    Web开发基础常见错误汇总

    Web 开发基础常见错误汇总,这个标题明确地表明了文档的主题,即 Web 开发中常见的错误总结。这个标题让读者快速了解文档的内容和目的。 描述分析 本文档是作者精心整理出自己在学习过程中遇到过的常见错误,基本...

    java web开发中关于常用错误的整理

    了解并熟练处理这些常见错误是Java Web开发的基础,这将帮助开发者更快地定位和解决问题,提高开发效率。通过设置好开发环境,编写规范的代码,并掌握良好的异常处理策略,可以避免许多不必要的困扰。在实际开发中,...

    Java Web开发实践教程源码ch06

    在Java Web开发领域,实践是掌握技术的关键。"Java Web开发实践教程源码ch06"提供了一套详细的课程源码,旨在帮助学习者深入理解并应用相关技术。本章节可能涵盖第六章的内容,通常在一本教程中,第六章会涉及更高级...

    30天学通Java Web项目案例开发(中)源码

    《30天学通Java Web项目案例开发(中)源码》是一份旨在帮助初学者在30天内掌握Java Web开发技术的实践教程。这个压缩包包含了项目的中期部分源代码,由于文件大小限制,完整的项目案例被分段上传。通过深入学习这份...

    Java Web Structs2开发

    8. **自由标记库(FreeMarker或JSP)**:Struts2支持FreeMarker和JSP作为视图技术,FreeMarker是一种模板语言,可以更清晰地分离视图和逻辑,而JSP则更常见于传统的Java Web开发。 9. **插件体系**:Struts2拥有...

    [21天学通Java.Web开发]

    典型实例往往涉及到用户登录验证、数据存取、会话跟踪等Web开发中的常见问题处理。通过实例分析,学习者可以掌握如何设计数据库交互、实现Web层的业务逻辑以及前端页面的动态内容展示。 综合练习是为了检验学习成果...

    java web开发的登陆小例子

    在Java Web开发中,创建一个登录功能是学习过程中的常见任务。这个"java web开发的登陆小例子"可能包含了一个简单的用户登录系统的基本组件,旨在帮助初学者理解Web应用程序的交互流程。以下是一些关键知识点: 1. ...

    Java Web开发常见问题.docx

    Java Web开发过程中,开发者经常会遇到一系列的技术挑战,这些问题不仅影响应用程序的正常运行,还可能导致系统性能下降、安全性受损,甚至整个项目的进度受阻。以下是对这些常见问题的详细解析及应对策略。 1. **...

    深入体验Java+Web项目开发(开发日记)2

    MVC(Model-View-Controller)模式是常见的Java Web开发模式,它将业务逻辑、数据和用户界面分离,提高代码的可维护性和可测试性。Spring框架是实现MVC模式的首选,它的依赖注入(DI)和面向切面编程(AOP)极大地...

    亮剑JAVA+WEB开发案例导航

    7. **框架应用**:可能涉及Spring MVC或Struts2等主流Java Web开发框架,它们简化了开发过程并提供了良好的可扩展性。 8. **Ajax**:异步JavaScript和XML技术,实现页面的部分更新,提升用户体验。 9. **RESTful ...

    Java Web数据库系统应用开发与实例源代码

    通过提供的实例源代码,开发者可以学习到如何在实际项目中整合这些技术,从数据库设计、后端逻辑实现到前端界面展示,从而提升自己的Java Web开发能力。在研究源代码时,注意理解每个类和方法的作用,以及它们之间的...

    java web 开发总结

    在这个总结中,作者胡志广分享了他在Java Web开发过程中遇到的一些问题及其解决方案,主要包括以下几个方面: 1. **Linux SSH 连接问题**: - 当尝试通过SSH连接到另一台Linux机器时,如果出现需要输入密码的情况...

    精通Tomcat-Java Web应用开发

    2. **Servlet与JSP**:作为Java Web开发的核心,Servlet和JSP是开发者必须掌握的技术。书中的这部分内容会详细讲解Servlet生命周期、请求处理、响应构建以及JSP语法和EL表达式等关键概念。 3. **Tomcat配置**:...

    Tomcat与Java Web开发技术详解

    总之,“Tomcat与Java Web开发技术详解”这个压缩包提供了全面的学习资料,旨在帮助开发者深入理解Tomcat与Java Web的关系,熟练掌握相关开发技能,并能有效地解决开发过程中遇到的问题。无论是自学还是作为教学资料...

Global site tag (gtag.js) - Google Analytics