Java编程:错误排查与程序调试全面指南
"Java程序调试与错误收集--代码引起的报错" 在编程过程中,错误是不可避免的,尤其是对于初级程序员来说,理解并解决Java程序中的错误至关重要。本篇内容主要聚焦于Java编程中常见的错误类型及其调试方法。 1. 类型错误:在编写Java代码时,可能会遇到类型不匹配的问题,例如将字符串赋值给整型变量,这会导致编译错误。解决方法是确保数据类型的正确转换或使用适当的类型。 2. 编译错误:当类路径(classpath)设置不正确时,可能导致找不到类或包的错误。正确配置classpath,确保包含所有必要的库和源代码文件,是避免这类问题的关键。 3. 字符编码错误:在处理字符集时,如JSP文件没有指定正确的pageEncoding(例如UTF-8),可能会出现乱码。确保在JSP头部声明正确的编码,并在HTTP响应中设置相应的字符编码。 4. 作用域问题:在JavaBean中,如果属性未正确初始化或在 Dao 层、Servlet层和JSP页面之间传递时没有正确设置,可能导致空指针异常。检查并确保对象实例化和数据传递的正确性。 5. 循环引用:在使用EL表达式(Expression Language)时,若没有正确地创建和初始化JavaBean,或者在JSP中未正确使用<c:forEach>标签,可能会引发错误。确保JavaBean已正确定义,同时在循环中正确使用变量。 6. 类冲突:当同一文件中有两个同名类时,会报"The import java.conflicts with a type defined in the same file"错误。为避免冲突,应使用不同的命名空间或移除重复的导入。 7. 类找不到异常:如果在运行时遇到"java.lang.ClassNotFoundException",可能是因为缺少Servlet的配置,或者web.xml中未声明对应的Servlet。检查web.xml文件,确保Servlet已注册且路径正确。 8. 文件上传:当需要在JSP中处理文件上传时,需在<form>标签中添加enctype="multipart/form-data"属性,并在后台Servlet中处理文件读取。注意,不要忘记设置合适的请求编码和返回类型。 9. 请求转发与重定向:在从一个JSP页面转向另一个JSP页面时,若未正确设置response.setContentType和request.setCharacterEncoding,可能导致数据传输错误。确保设置正确的字符集以防止乱码。 10. 数据库连接异常:遇到"com.microsoft.sqlserver.jdbc.SQLServerException"和"java.net.ConnectException",通常是数据库连接问题,可能是由于服务器未启动、端口配置错误或网络问题。检查数据库服务状态,确保数据库服务器的TCP/IP协议配置正确,并能接受连接。 以上只是Java编程中常见的一些错误类型及其解决方案,调试Java程序时,理解错误信息、分析代码逻辑以及合理配置环境是解决问题的关键步骤。通过不断实践和学习,程序员可以逐渐掌握处理这些问题的技巧,提高编程效率。
(2).代码错误导致的错
①.当页面/控制台报错时(没有遇到过的错/看不懂的错),先看错误信息中的错误信息来源于哪个类/方法/哪行代码,在根据那行代码多试几中方法
②.保存时发生的错误:当jsp文件中的内容改变,要保存的时候,要先把第一行的pageEncoding属性值设置为utf-8,否则将报错不能保存
③.启动服务器报错,可能的错误有:配置文件有错,也可能是JSP页面中的标签有错(此时它不一定报正在使用的程序的错,有可能报其他程序的错),可以在服务器的webapps
目录下把标签有错的项目删除
④.JavaBean引起的错误:
JavaBean的属性名首字母必须小写,否则即使再dao层、server层和servlet中可以取得其中的值,在Jsp页面中无论用什么方法都不能取得
⑤.当不出现预想的效果时,如果确认不是浏览器缓存所致,但又找不出错误和原因并浏览器状态栏左边出现有"网页上有错误"的消息时,双击此消息>单击弹出框中的"显示
详细信息"按钮查看错误(其中的"行"和"错误"说明了错误的位置和原因)
⑥.当在jsp页面中用<c:foreach>和EL表达式不能取到值时,应当首先检查是否导入c:标签库,再检查JavaBean的所有属性名首字母是否是小写
⑦.当导入一个包报错时,如果包名确认无误且当鼠标放在包名上提示The import java.... conflicts with a type defined in the same file时,表示声明的类名和导入
的包名冲突
⑧.当控制台出现有java.lang.ClassNotFoundException:的错误时,说明项目找不到Servlet,可能是web.xml中没有配置或配置错误,如果确认配置没有错但仍然报此错误时
,就把web.xml中对应的Servlet的节点删除,同时也把对应的Servlet删除重新新建
⑨.当一个jsp页面要有上传的功能时,要在form表单中加一个enctype="multipart/form-data"属性,但是在jsp页面的form表单中加了该属性后,该表单中的所有控件(包括
隐藏表单域)的值在servlet中不能用一般的方法获得,必须加判断那些是普通控件那些是上传文件的控件,再用别的方法获取,所以这时用作传参数的隐藏表单中的参数
必须加在form表单的action属性中来传递,其方法是:action="servlet?name=value"(即:这时隐藏表单必须用action代替),这时在servlet中才能用一般的获取值的方法
获取jsp页面传来的值
⑩.当一个jsp页面跳到servlet后又经过servle逃到另一个jsp页面,页面出现乱码时,是因为没有在servlet中设置请求流和相应流的编码方式,response.setContentType(
"text/html;charset=utf-8");request.setCharacterEncoding("utf-8");
11.当控制台出现有"...将截取字符串错误..."的错误时,是因为数据库相应字段的数据长度不够
12.当访问任意一个页面都出现404错误时或当启动Tomcat服务器在控制台打印相关报错语句时,可能是因为web.xml或其他xml配置文件配置错误也可能是因为导入的jar包
冲突.
13.当控制台出现有com.microsoft.sqlserver.jdbc.SQLServerException:到主机的TCP/IP连接失败。java.net.ConnectException:Connection refused:connect的错误时
,可能是因为数据库的端口号不对,打开SQL Server配置管理器中的SQL Server 2005网络配置中的SQLEXPRESS的协议的TCP/IP中的IP地址项中的所有TCP端口都设置对,
并将其中的活动和已启用项设为是/yes和协议项中的全部侦听、无延迟、已启用都设为是/yes,再重新启动SQL Server 2005服务中的SQL Server(SQLEXPRESS)即可
14.当从servlet或Action跳到一个查询或修改的页面时,如果报500错误并在控制台打印javax.el.PropertyNotFoundException:Property 'PropertyName' not found on
type ...,可能是因为目标页面中的<c:forEach>的items的值写成了直接用""引起的字符串,items的""中应该用EL取值,即应该是items="${List或Object}",或者是EL中
的对象/属性名和javaBean中的不同(应仔细检查)
下载后可阅读完整内容,剩余1页未读,立即下载
- 粉丝: 2
- 资源: 54
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- JSP+SSM科研管理系统响应式网站设计案例
- 推荐一款超级好用的嵌入式串口调试工具
- PHP域名多维查询平台:高效精准的域名搜索工具
- Citypersons目标检测数据集:Yolo格式下载指南
- 掌握MySQL面试必备:程序员面试题解析集锦
- C++软件开发培训:核心技术资料深度解读
- SmartSoftHelp二维码工具:生成与解析条形码
- Android Spinner控件自定义字体大小的方法
- Ubuntu Server on Orangepi3 LTS 官方镜像发布
- CP2102 USB驱动程序的安装与更新指南
- ST-link固件升级指南:轻松更新程序步骤
- Java实现的质量管理系统Demo功能分析与操作
- Everything高效文件搜索工具:快速精确定位文件
- 基于B/S架构的酒店预订系统开发实践
- RF_Setting(E22-E90(SL)) V1.0中性版功能解析
- 高效转换M3U8到MP4:免费下载工具发布