jsp,js,ajax期末总结(错误记录)
jsp常见错误分析
异常
javax.servlet.jsp.JspException: No getter method for property username of bean org.apache.struts.taglib.html.BEAN
Jsp常见异常(转)
异常
javax.servlet.jsp.JspException: Cannot retrieve mapping for action /Login (/Login是你的action名字)
可能原因
action没有再struts-config.xml 中定义,或没有找到匹配的action,例如在 JSP文件中使用 <html:form action="Login.do".将表单提交给
异常
javax.servlet.jsp.JspException:
Cannot
find
bean
org.apache.struts.taglib.html.BEAN in any scope
Probable Causes
试图在Struts的form标记外使用form的子元素。这常常发生在你在 </html:form>后面使用Struts的html标记。
<forward name="userhome" path="/user/userhome.jsp"/>
----------------------------------------------------------------------------------------------------------------
ajax 成功失败方法
ajax 成功失败方法一、Ajax的成功方法1. 使用适当的状态码:在Ajax请求中,服务器会返回一个状态码,用来表示请求的处理结果。
在成功的情况下,常见的状态码是200(OK)或者204(No Content)。
通过判断状态码,我们可以确定请求是否成功,并根据结果进行相应的处理。
2. 处理成功的回调函数:在Ajax请求中,我们可以定义一个回调函数,用来处理请求成功后的响应数据。
这个回调函数可以在请求完成后被调用,并且可以访问到服务器返回的数据。
通过在回调函数中处理数据,我们可以更新页面内容或者执行其他操作,以达到动态更新页面的效果。
3. 错误处理机制:在Ajax请求中,服务器可能会返回一些错误信息,例如404(Not Found)或者500(Internal Server Error)。
为了保证用户体验,我们需要对这些错误进行适当的处理。
一种常见的做法是在回调函数中判断状态码,如果是错误的状态码,就显示相应的错误信息,或者执行其他的错误处理逻辑。
二、Ajax的失败方法1. 使用适当的状态码:在Ajax请求中,服务器返回的状态码可以帮助我们判断请求是否失败。
常见的失败状态码包括400(BadRequest)和500(Internal Server Error)。
通过判断状态码,我们可以确定请求是否失败,并根据结果进行相应的处理。
2. 处理失败的回调函数:在Ajax请求中,我们可以定义一个回调函数,用来处理请求失败的情况。
这个回调函数可以在请求完成后被调用,并且可以访问到服务器返回的错误信息。
通过在回调函数中处理错误信息,我们可以向用户显示具体的错误提示,或者执行其他的失败处理逻辑。
3. 超时处理机制:在Ajax请求中,由于网络原因或者服务器负载过高,请求可能会超时。
为了避免用户长时间等待而导致不良体验,我们可以设置一个超时时间,并在超时后执行相应的处理。
一种常见的做法是在超时后显示一个提示信息,告诉用户请求超时,请稍后再试。
ajax总结
ajax总结Ajax(Asynchronous JavaScript and XML)是一种用于创建交互式网页应用程序的技术,通过在后台与服务器进行异步数据交换,使得网页的内容可以实时更新,提升了用户体验。
在本文中,我将对Ajax进行总结并探讨其在Web开发中的应用和优势。
一、Ajax的原理和特点Ajax的核心原理是通过JavaScript异步请求数据,在不刷新整个页面的情况下,实时更新页面内容。
与传统的同步请求相比,Ajax能够大大提升用户体验,使得页面加载更为流畅。
Ajax的特点有以下几个方面:1. 异步通信:Ajax采用异步操作,不会阻塞页面的其他操作。
2. 数据交互:Ajax通过发送HTTP请求与服务器进行数据交互,可以获取数据、发送数据和更新数据。
3. 更新局部内容:与传统的页面刷新相比,Ajax只更新需要改变的部分,节省带宽并提升了页面加载速度。
二、Ajax的应用1. 表单验证:通过Ajax可以实时对用户输入的数据进行验证,例如检查用户名是否已被占用、密码是否符合规范等。
2. 动态加载内容:通过Ajax可以实现无缝加载内容,例如在社交网络中实时加载新的动态、加载评论等。
3. 自动补全:通过Ajax可以实现实时搜索建议和自动完成功能,提供更加智能的用户体验。
4. 异步提交表单:通过Ajax可以实现表单的异步提交,避免了页面的跳转,提升了用户体验。
5. 实时聊天:通过Ajax可以实现实时聊天功能,用户可以即时地发送和接收消息。
三、Ajax的优势1. 提升用户体验:Ajax能够实现页面的局部更新,使得用户只需要等待少量的数据交互,提升了用户体验。
2. 减少带宽消耗:通过Ajax只更新需要改变的部分,减少了无谓的数据传输,降低了带宽消耗。
3. 提高网站性能:Ajax可以减轻服务器的负担,提高了网站的性能,特别在同时有大量用户访问的情况下。
4. 增加交互性:Ajax使得网页可以在不刷新页面的情况下实时响应用户的操作,增加了交互性和动态性。
jsp大学期末考试试题及答案
jsp大学期末考试试题及答案一、选择题(每题2分,共20分)1. Jsp页面中,用于获取请求参数的表达式是()。
A. request.getParameter()B. request.getAttribute()C. response.getWriter()D. session.getAttribute()答案:A2. 在JSP中,用于包含其他JSP页面的指令是()。
A. <jsp:forward>B. <jsp:include>C. <jsp:useBean>D. <jsp:setProperty>答案:B3. 下列哪个不是JSP内置对象()。
A. requestB. responseC. sessionD. bean答案:D4. 在JSP中,用于声明变量、方法或初始化块的脚本元素是()。
A. <%! ... %>B. <% ... %>C. <%@ ... %>D. <%= ... %>5. 以下哪个标签不是JSTL核心标签库的一部分()。
A. <c:if>B. <c:forEach>C. <c:out>D. <sql:query>答案:D6. 在JSP中,用于将JavaBean属性与JSP页面属性绑定的标签是()。
A. <jsp:useBean>B. <jsp:setProperty>C. <jsp:include>D. <jsp:forward>答案:B7. 对于JSP页面的错误处理,以下说法错误的是()。
A. 可以使用try-catch块来处理异常B. 可以使用<%@ page errorPage="error.jsp" %>指令指定错误处理页面C. 所有的错误都会自动跳转到错误处理页面D. 可以使用page指令的isErrorPage属性来指定当前页面是否为错误处理页面答案:C8. 在JSP中,用于声明使用JSTL标签库的指令是()。
JSP代码中常见错误实例及其分析改正
JSP代码中常见错误实例及其分析改正:1、首先是如果你遇到:javax.servlet.ServletException: ng.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver这个错误,修改:那么估计你应该把Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");应改成Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");2、当错误为javax.servlet.ServletException: java.sql.SQLException: No suitable driver found for jdbc:microsoft:sqlserver://localhost:1034;DatabaseName=test2 时,应该把String url="jdbc:microsoft:sqlserver://localhost:1034;DatabaseName=test2";改成String url="jdbc:sqlserver://localhost:1034;DatabaseName=test2";3、错误为javax.servlet.ServletException: com.microsoft.sqlserver.jdbc.SQLServerException: 无法打开登录所请求的数据库 "test2"。
登录失败。
修改方法:注意检查 TCP/IP协议、端口、以及相应的服务是否启动到配置管理器中,检查网络配置中TCP/IP的IPALL的动态端口,检查应为 1433,另外sql server里的用户权限还是要注意下的,不然容易出问题4、代码:查询记录集--错误:javax.servlet.ServletException: com.microsoft.sqlserver.jdbc.SQLServerException: 不支持此游标类型/并发组合。
了解如何处理常见的代码错误和异常
了解如何处理常见的代码错误和异常处理常见的代码错误和异常是每个程序员都应该掌握的重要技能。
在开发过程中,代码错误和异常是不可避免的,但是通过正确的处理和调试,可以有效地定位和解决这些问题,提高代码的质量和稳定性。
下面将介绍一些常见的代码错误和异常,并提供一些处理方法。
1.语法错误(Syntax Errors):语法错误是最常见的错误之一,指的是程序中违反了编程语言的语法规则。
这种错误通常由于拼写错误、缺少符号或错误的语法使用而引起。
处理这种错误的方法包括:-仔细检查代码,并对照编程语言的语法规则进行纠正。
-使用集成开发环境(IDE)或代码编辑器来检测并标记语法错误,并提供即时反馈和纠正建议。
-使用代码格式化工具来规范代码风格,从而减少语法错误的出现。
2.运行时错误(Runtime Errors):运行时错误是指在程序运行时发生的错误,通常由于错误的逻辑、输入或操作导致。
处理这种错误的方法包括:-通过正确的错误处理机制,如异常处理或错误陈述,来捕获和处理运行时错误。
-使用断言来验证和检查程序的前提条件和后置条件,提供更详细的错误信息和上下文。
-使用调试工具和技术来定位和修复运行时错误,如断点调试、日志记录和追踪。
3.逻辑错误(Logic Errors):逻辑错误是指程序中的错误逻辑或设计缺陷,导致程序无法按照预期的方式运行。
处理这种错误的方法包括:-仔细检查程序的逻辑和算法,并确保它们符合预期的行为。
-使用单元测试和集成测试来验证程序的正确性,并发现潜在的逻辑错误。
-使用日志记录和调试技术来跟踪程序执行的流程,并定位逻辑错误的具体位置。
4.空指针异常(NullPointerException):空指针异常是由于在不允许为空的对象上执行空引用操作而引起的异常。
处理这种异常的方法包括:-在使用对象之前,使用条件语句或断言来检查对象是否为空,从而避免空指针异常的出现。
-使用可空标记(Nullable Annotations)来标记参数、返回值和字段的空值约定,提供更好的代码文档和静态检查支持。
jsp上机期末试题及答案
jsp上机期末试题及答案经过多次的探索和尝试,我们终于在2021年成功地开发出了一套先进的网络技术——JSP(Java Server Pages)。
作为一种用于快速开发动态网页的技术,JSP已经广泛应用于各个领域,并取得了令人瞩目的成果。
为了能更好地帮助大家了解和掌握JSP这一技术,我们为大家准备了一份jsp上机期末试题及答案,希望能对大家的学习和实践有所帮助。
一、选择题1. 下列关于JSP的说法中,正确的是:A. JSP是一种编程语言B. JSP文件可以直接被浏览器解析C. JSP可以与Java代码混合在一起D. JSP文件不能包含HTML标签答案:C. JSP可以与Java代码混合在一起2. 下列哪个是JSP的内置对象?A. RequestB. ResponseC. SessionD. ServletContext答案:A. Request3. 下列关于JSP指令的说法中,错误的是:A. JSP指令用于设置全局的页面属性B. JSP指令以“<%@”开头C. JSP指令可以包含多个属性D. JSP指令以“%>”结尾答案:D. JSP指令以“%>”结尾二、填空题1. 创建一个JSP页面时,需要在文件的扩展名前添加_________。
答案:jsp2. JSP的注释语法是_________。
答案:<!-- 注释内容 -->三、简答题1. 请简要说明JSP的工作原理。
答案:JSP的工作原理是将JSP文件转换成Java代码,然后通过编译器编译成Servlet类,再由Servlet容器加载和执行。
当浏览器请求JSP页面时,Servlet容器会根据请求创建一个新的线程来处理该请求,生成对应的响应结果,并返回给浏览器展示。
2. 在JSP中,如何获取表单提交的数据?答案:可以使用内置对象request.getParameter()方法来获取表单提交的数据。
例如,如果表单中有一个输入框的name属性为"name",可以使用request.getParameter("name")来获取用户输入的值。
js学习总结
js学习总结学习JavaScript是现代编程的必备技能之一。
在Web开发中,JavaScript是一种广泛应用的脚本语言,可以为网页赋予动态和交互性。
学习JavaScript对于想要成为全栈开发者或前端工程师的人来说是至关重要的。
在我的JavaScript学习过程中,我总结了以下几点经验。
首先,学习语法和基本概念是理解JavaScript的关键。
我首先学习了JavaScript的基础语法,包括变量、数据类型、运算符和控制结构等。
从简单的示例开始,逐渐深入理解语言的特性和用法。
在学习的过程中,我发现通过实践编写代码是最好的学习方法,因为只有亲自动手去实验,我才能更好地理解和记住。
其次,掌握DOM(Document Object Model)和事件处理非常重要。
DOM是HTML文档的编程接口,可以用JavaScript来操作网页上的元素。
我学习了如何通过DOM方法选择和操作HTML元素,例如修改文本内容、改变样式或添加和删除元素等。
同时,我还学习了如何通过事件处理来实现网页的交互性。
事件处理允许在用户执行某些操作时触发相应的JavaScript代码。
这使得网页能够对用户的操作做出响应,并提供更好的用户体验。
第三,熟悉常用的JavaScript库和框架能够提升开发效率。
像jQuery这样的库提供了许多实用的功能和方法,使得JavaScript代码变得更简洁和易读。
另外,像React和Vue.js这样的前端框架提供了更高级和更复杂的功能,使得我们能够更轻松地构建现代化和响应式的网页应用程序。
第四,学习调试和错误处理是成为一名优秀JavaScript开发者的关键。
在编程过程中,出错是常有的事情,而且调试是解决问题的关键工具。
我学会了如何使用浏览器的控制台来调试代码,查看变量的值、打印调试信息或检查JavaScript的错误。
此外,我还了解了常见的错误类型和如何处理它们。
对于解决问题,要有耐心和坚持不懈的精神。
10个最常见的JavaScript错误(以及如何避免它们)-来自Rollbar1000...
10个最常见的JavaScript错误(以及如何避免它们)-来自Rollbar1000...为了回馈我们的开发者社区,我们查看了数千个项目的数据库,发现了JavaScript 的10 大错误。
我们将向你展示这些错误的原因,以及如何防止这些错误发生。
如果你避免了这些“陷阱” ,这将使你成为一个更好的开发人员。
由于数据是国王,我们收集,分析并排名前十的 JavaScript 错误。
Rollbar 会收集每个项目的所有错误,并总结每个项目发生的次数。
我们根据指纹对错误进行分组,来做到这一点。
基本上,如果第二个错误只是第一个错误的重复,我们会把两个错误分到同一组。
这给用户一个很好的概括,而不是像在日志文件中看到的那些压迫性的一大堆垃圾描述。
我们专注于最有可能影响你和你的用户的错误。
为此,我们通过横跨不同公司的项目数来排列错误。
如果我们只查看每个错误发生的总次数,那么大流量的项目可能会淹没与大多数读者无关的错误的数据集。
以下是排名前10 的JavaScript 错误:为了便于阅读,没有花大段的文字来描述每个错误。
让我们深入到每一个错误,来确定什么可以导致它,以及如何避免它发生。
1.Uncaught TypeError: Cannot read property如果你是一个JavaScript 开发人员,你可能已经看到这个错误的次数比你敢承认的要多。
当你读取一个属性或调用一个未定义的对象的方法时,这个错误会在 Chrome 中发生。
你可以在 Chrome 开发者工具的控制台中轻松测试。
发生这种情况的原因很多,但常见的一种情况是在渲染UI组件时不恰当地初始化了 state(状态)。
我们来看一个在真实应用程序中如何发生的例子。
我们将选择React,但不正确初始化的原则也适用于Angular,Vue或任何其他框架。
JavaScript 代码:1.classQuizextendsComponent{ponentWillMount() {3.axios.get('/thedata').then(res => {4.this.setState({items: res.data});5.});6.}7.8.render() {9.return(10.<ul>11.{this.state.items.map(item =>12.<li key={item.id}>{}</li>13.)}14.</ul>15.);16.}17.}这里有两件重要的事情要实现:1.组件的状态(例如 this.state)从 undefined 开始。
前端开发中的常见错误与解决办法
前端开发中的常见错误与解决办法在前端开发中,常常会遇到一些错误或问题,这些错误可能会导致网页加载缓慢、布局混乱、功能失效等不良影响。
本文将介绍一些前端开发中常见的错误,并提供解决办法。
一、加载缓慢加载缓慢是前端开发中经常遇到的问题之一。
当网页加载速度较慢时,用户体验会受到很大的影响。
造成加载缓慢的原因有很多,如大量的图片、CSS和JavaScript文件、服务器响应延迟等。
解决办法:1. 使用图像压缩工具,例如TinyPNG,可以帮助减小图片的大小,加快网页加载速度。
2. 将CSS和JavaScript文件进行压缩和合并,减少HTTP请求的次数,并且使用缓存来提高网页的加载速度。
3. 优化服务器配置,确保服务器具有足够的带宽和处理能力,以及快速的响应时间。
二、布局混乱在不同的浏览器和设备上,网页布局可能会出现混乱的情况。
布局混乱可能导致元素错位、重叠、溢出等问题,影响用户对网页内容的正常浏览。
解决办法:1. 使用CSS的标准盒模型,确保元素的宽度和高度包括边框和内边距,避免布局错位。
2. 使用CSS的浮动和定位属性来控制元素的位置,避免元素重叠和溢出。
3. 使用CSS媒体查询,针对不同的设备尺寸设置不同的样式,以保证网页在不同设备上的布局一致性。
三、功能失效功能失效是前端开发中常见的错误之一。
功能失效可能导致按钮点击无效、表单提交失败、动画效果不显示等问题,影响用户对网页交互的体验。
解决办法:1. 检查JavaScript代码中的语法错误和逻辑错误,确保代码的正确性。
2. 使用浏览器的开发者工具,检查JavaScript控制台的错误信息,排查功能失效的原因。
3. 确保HTML元素和JavaScript事件的绑定正确,以及正确调用相关的函数和方法。
4. 使用合适的插件和库来实现复杂的交互功能,减少错误和问题的出现。
总结:前端开发中的常见错误包括加载缓慢、布局混乱和功能失效等。
针对这些错误,可以采取一系列的解决办法,如优化文件大小、压缩和合并文件、优化服务器配置、使用标准盒模型、使用浮动和定位属性进行布局控制、使用媒体查询进行响应式设计、检查JavaScript代码的正确性和调试等。
JavaScript中代码错误排查与修复技巧
JavaScript中代码错误排查与修复技巧JavaScript是一种广泛使用的脚本语言,但由于其动态性和弱类型特性,常常容易出现错误。
为了排查和修复这些错误,开发人员需要掌握一些技巧和方法。
以下是一些常见的JavaScript代码错误排查与修复技巧。
1.使用开发者工具浏览器提供了强大的开发者工具,可以帮助我们调试JavaScript代码。
其中包括控制台(console)、断点调试(debugger)、性能分析器(profiler)等工具。
通过使用这些工具,我们可以查看变量值、调用堆栈、错误消息等信息,从而更好地理解和排查错误。
2.仔细阅读错误消息当JavaScript代码出现错误时,浏览器会显示错误消息。
仔细阅读错误消息,可以帮助我们确定错误的类型和位置。
错误消息通常包含错误类型、文件名、行数等信息,这些信息对于定位错误非常重要。
3.缩小错误范围当出现错误时,我们可以通过逐步缩小错误范围来定位问题所在。
可以通过注释代码的方式或者分步执行代码的方式,逐步排除可能出错的部分。
当确定问题所在后,就可以针对性地进行修复。
4.使用断言和异常处理断言(assertion)和异常处理(exception handling)是JavaScript 代码中常用的技术。
断言可以帮助我们在代码中设置预期条件,以便在运行时验证这些条件是否成立。
异常处理则用于捕获和处理代码运行时发生的异常。
通过使用这些技术,我们可以更早地发现和处理错误。
5.编写单元测试单元测试可以帮助我们验证代码的正确性,并在代码发生变动后发现潜在的错误。
使用测试框架,编写各种场景的测试用例,以覆盖代码的不同执行路径和边界条件。
通过运行这些单元测试,我们可以更好地捕捉和修复潜在的错误。
6.代码审查和团队合作在项目开发过程中,通过代码审查和团队合作也可以发现和修复错误。
代码审查可以帮助我们发现潜在的问题,并提供改进的建议。
团队合作可以让我们共同面对问题,并集思广益,找到最佳的解决方案。
JS中常见的几种报错类型
JS中常见的⼏种报错类型1、JS中常见的⼏种错误1.1、SyntaxError(语法错误)解析代码时发⽣的语法错误var 1a; //Uncaught SyntaxError: Invalid or unexpected token 变量名错误console.log 'hello'); //Uncaught SyntaxError: Unexpected string 缺少括号1.2、ReferenceError(引⽤错误)console.log(a); //Uncaught ReferenceError: a is not defined 引⽤了⼀个不存在的变量console.log()= 1; //Uncaught ReferenceError: Invalid left-hand side in assignment 将变量赋值给⼀个⽆法被赋值的对象1.3、RangeError(范围错误)var a = new Array(-1); //Uncaught RangeError: Invalid array length 超出有效范围1.4、TypeError(类型错误)变量或参数不是预期类型,⽐如,对字符串、布尔值、数值等原始类型的值使⽤new命令,就会抛出这种错误,因为new命令的参数应该是⼀个构造函数。
var a = new 123; //Uncaught TypeError: 123 is not a function调⽤对象不存在的⽅法var a;a.aa(); //Uncaught TypeError: Cannot read property 'aa' of undefined1.5、URLError(URL错误)与url相关函数参数不正确,主要是encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()这六个函数。
JavaScript代码调试与错误排查的方法与工具
JavaScript代码调试与错误排查的方法与工具JavaScript作为一种广泛应用于网页开发和前端技术的编程语言,调试和错误排查是开发过程中不可或缺的一部分。
本文将介绍一些常用的方法和工具,以帮助开发人员更高效地进行JavaScript代码调试与错误排查。
一、使用浏览器内置的开发者工具进行调试现代浏览器都内置了强大的开发者工具,提供了一系列调试功能。
其中,常用的调试功能包括:1. 控制台(Console):开启浏览器的开发者工具,切换到控制台选项卡,可以查看和调试JavaScript代码。
在控制台中,可以输出日志、检查变量的值、执行代码片段等。
2. 断点调试(Breakpoints):在代码中设置断点,可以暂停代码的执行,以便逐行查看和分析代码执行过程。
开发者可以在断点暂停时检查变量的值、观察代码执行流程等。
3. 监视器(Watch):使用监视器功能,可以跟踪和观察指定变量的值的变化,帮助开发者更好地理解代码的执行情况。
4. 堆栈追踪(Stack Trace):在调试过程中,浏览器会记录代码的调用栈,即从主函数开始到当前执行位置的函数调用序列。
通过堆栈追踪,可以溯源到错误发生的代码位置,便于快速定位问题。
二、使用eslint等静态代码检查工具静态代码检查工具可以帮助开发人员在编码阶段发现潜在的问题和错误,并提供相应的修复建议。
其中,eslint是一款广泛使用的JavaScript静态代码检查工具。
通过在代码中添加eslint规则,可以在代码编写过程中实时检查错误和潜在问题,提高代码质量。
eslint支持自定义规则,并提供了一系列预设规则,涵盖了JavaScript编码中的各个方面。
开发人员可以根据自己的项目需求和编码规范进行配置。
三、使用Chrome DevTools的追踪和性能分析功能除了常规的调试功能,Chrome DevTools还提供了一些高级的追踪和性能分析工具,帮助开发人员更深入地理解和优化JavaScript代码。
前端JavaScript常见的报错及异常捕获
前端JavaScript常见的报错及异常捕获导读在开发中,有时,我们花了⼏个⼩时写的js 代码,在游览器调试⼀看,控制台⼀堆红,瞬间⼀万头草泥马奔腾⽽来。
⾄此,本⽂主要记录js 常见的⼀些错误类型,以及常见的报错信息,分析其报错原因,并给予处理⽅法。
并且将介绍⼏种捕获异常的⽅法。
常见的错误类型RangeError:标记⼀个错误,当设置的数值超出相应的范围触发。
⽐如,new Array(-20)。
ReferenceError:引⽤类型错误,当⼀个不存在的变量被引⽤时发⽣的错误。
⽐如:console.log(a)。
SyntaxError:语法错误。
⽐如 if(true) {。
TypeError:类型错误,表⽰值的类型⾮预期类型时发⽣的错误。
常见的错误RangeError: Maximum call stack size exceeded含义:超出了最⼤的堆栈⼤⼩为什么报错?在使⽤递归时消耗⼤量堆栈,导致游览器抛出错误,因为游览器给分配的内存不是⽆限的。
举个栗⼦function pow(x, n) {return x * pow(x, n - 1);}pow(10,5)处理办法使⽤递归的时候,设定⼀个条件来终⽌递归,否则会⽆限循环,直到⽤尽调⽤堆栈空间为⽌。
function pow(x, n) {if (n == 1) return xreturn x * pow(x, n - 1);}pow(10,5)ReferenceError: "x" is not defined含义: “x”未定义为什么报错?当你引⽤⼀个没有定义的变量时,抛出⼀个ReferenceError; 当你使⽤变量的时候,这个变量必须要声明,或者你可以确保它在你当前的脚本或作⽤域 (scope) 中可⽤。
举个栗⼦// 变量未声明console.log(a)fn()// 错误的作⽤域function sum() {let number1 = 20,number2 = 30;return number1 + number2;}console.log(number1)处理办法变量使⽤var|let|const 声明提升变量的作⽤域// 变量未声明let a;function fn() {};console.log(a);fn();// 错误的作⽤域let number1 = 20, number2 = 30;function sum() {return number1 + number2;}console.log(number1)SyntaxError: Identifier 'x' has already been declared含义: 标识符已申明为什么报错?某个变量名称已经作为参数出现了,⼜在使⽤let再次声明。
[前端]记录工作中遇到的各种问题(Bug,总结,记录)
[前端]记录⼯作中遇到的各种问题(Bug,总结,记录)最近⼀年,在开发实践过程中遇到了不少问题,⼤多都能得到解决部分知其原理,部分只能做到解决问题,⽽半年前遇到的问题,或多或少都忘得差不多了是该记录⼀下⼀些问题,防⽌再遇到就得再查资料了1. 浏览器在开启有道划词插件的时候,使⽤插件上传⽂件报错开启插件时,该插件会往⽂档中添加⾳频元素节点⽽AjaxFileUpload插件的上传⽂件处理⽅式是,获取返回的实体内容,直接进⾏eval解析,解析失败,报错,则⽆法上传这插件在旧系统中常⽤到,解决办法就是不⽤这个插件,或者停⽤有道划词插件另外,我的解决⽅案则是⽤了FormData对象来异步上传⽂件2. Uncaught TypeError: jQuery.handleError is not a function使⽤某些旧插件的时候,会出现这个错误插件使⽤了handleError这个⽅法,⽽新版的jQuery以及去除了这个⽅法,所以这时可以弃⽤插件或者为JQ加回此⽅法jQuery.extend({handleError: jQuery.handleError || function( s, xhr, status, e ) {// If a local callback was specified, fire itif ( s.error ) {s.error( xhr, status, e );}// If we have some XML response text (e.g. from an AJAX call) then log it in the consoleelse if(xhr.responseText) {console.log(xhr.responseText);}}});3. 异步⽅式实现导出Excel表格⽤异步的⽅式导出数据,⽤Ajax貌似不⾏⽬前想到的⽅法就是⽤iframe,设置不同的src即可让后端返回相应数据另外,刚发现的⼀个异步导出⽂件的⽅式是,直接设置当前URL为接⼝的路径即可window.location.href = '?p.......';4. 页⾯使⽤Angular.js(1),页⾯中iframe中初始设置src属性的话,会导致页⾯重新加载⼀次例如设置⼀个初始值,某些操作之后再更改src<iframe src="#" class="export-iframe"></iframe>Controller似乎会触发两次,可以看到加载的请求多触发了⼀次,且第⼆次的链接中会多了⼀个#号解决办法就是直接不设置这个属性<iframe class="export-iframe"></iframe>5. ⽗页⾯中有iframe,iframe⾥⾯有分页按钮,在⽗页⾯对iframe做加载之后监听iframe中点击事件的操作,初始第⼀页正常,但点击第⼆页之后事件就失效了原代码:第⼀次成功打印出来,即触发了load事件,但点击下⼀页后,iframe实际上已经刷新了,但并不会再触发这个load事件后来的解决办法是换了种监听⽅法,区别主要是获取iframe对象的⽅式变了,还不知为啥会这样?6. 在iframe中的预览pdf⽂件时,有时embed元素未占满整个iframe,⽽是正好⼀半,⼀半⽬前还不知如何解决,把embed的宽⾼由100%设置成接近99%的时候,反⽽占满iframe的概率增多了不少..7. 在iPad下,⽆法实现⾃动聚焦这问题应该是解决不了的,是iOS⾃带的,⽅案只能是由⽤户触发mousedown、mouseup、click之类的事件后再调⽤8. 有个插件叫做,初期⽤得还好,不过之后断断续续发现了⼀些问题在匹配不到数据的时候,匹配结果直接显⽰了error⽂案,看看源码,直接改掉第⼆个坑是它直接把绑定元素的事件都注销了,这样太暴⼒很不好第三个坑是它给只读的style属性赋值,这种⽅式在严格模式是被禁⽌的,⽽这插件正好⾃个⼜⽤了严格模式坑就坑在:在Angular.JS(1)环境下使⽤iPad的时候才报错,PC上⽤Angular.JS正常,iPad下⽤⾮Angular.js正常..解决⽅法也很暴⼒,直接去掉插件的严格模式第四个坑是它⽤了Array.from,⽽这⽅法⽀持度是chrome45+,所以稍低版本的就遭殃了第五个坑就是它监听输⼊事件只⽤⾥keyup,应该还要考虑input与change事件9. bootstrap v3 的collapse折叠组件使⽤了click的事件监听⽅式,在移动端会有300ms的延迟官⽅貌似在v4中修复了,⽤v3的话,就⾃个添加touchstart事件的⽀持,还要注意touchstart事件触发之后还会触发原监听的click事件可按需来把它注销掉,移动端即有如丝般顺滑的collapse// 移动端iOS click有延迟添加折叠的touchstart事件⽀持if (isiOS) {$(document).off('click.bs.collapse.data-api', '[data-toggle="collapse"]');$(document).on('touchstart.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {var $this = $(this), hrefvar target = $this.attr('data-target')|| e.preventDefault()|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7var $target = $(target)var data = $target.data('bs.collapse')var option = data ? 'toggle' : $this.data()var parent = $this.attr('data-parent')var $parent = parent && $(parent)if (!data || !data.transitioning) {if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed')$this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')}$target.collapse(option)});}10. iOS10+会忽略meta 标签的user-scalable=no,没错苹果就是那么⽜别<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no">页⾯要禁⽌⽤户缩放,可以使⽤JS来辅助处理// 禁⽌缩放 iOS10+会忽略meta的user-scalable=nodocument.documentElement.addEventListener('touchstart', function (event) {if (event.touches.length > 1) {event.preventDefault();}}, false);另外要注意的是,上⾯只是禁⽤了双指的缩放,还有⼀种缩放叫做双击缩放,⽽iPad下是没有双击事件的,所以只能模拟引⽤st上的⼀段双击事件⽀持(function($){// Determine if we on iPhone or iPadvar isiOS = false;var agent = erAgent.toLowerCase();if(agent.indexOf('iphone') >= 0 || agent.indexOf('ipad') >= 0){isiOS = true;}$.fn.doubletap = function(onDoubleTapCallback, onTapCallback, delay){var eventName, action;delay = delay == null? 500 : delay;eventName = isiOS == true? 'touchend' : 'click';$(this).bind(eventName, function(event){var now = new Date().getTime();var lastTouch = $(this).data('lastTouch') || now + 1 /** the first time this will make delta a negative number */;var delta = now - lastTouch;clearTimeout(action);if(delta<500 && delta>0){if(onDoubleTapCallback != null && typeof onDoubleTapCallback == 'function'){onDoubleTapCallback(event);}}else{$(this).data('lastTouch', now);action = setTimeout(function(evt){if(onTapCallback != null && typeof onTapCallback == 'function'){onTapCallback(evt);}clearTimeout(action); // clear the timeout}, delay, [event]);}$(this).data('lastTouch', now);});};})(jQuery);然后就可以简单地进⾏调⽤了,双击后执⾏e.preventDefault()即可$(document).doubletap(/** doubletap-dblclick callback */function(event){event.preventDefault();},/** touch-click callback (touch) */function(event){},/** doubletap-dblclick delay (default is 500 ms) */100);11. requestAnimationFrame的并⾏调⽤不能保证在不同帧执⾏希望的效果是在⼀帧⼀帧地执⾏,然⽽浏览器会将多个操作合并到同⼀帧中,检测发现有分帧的策略,但得在回调中再次调⽤requestAnimationFrame才⾏⽽实际操作中还需要⼀种并⾏调⽤就能分帧的⽅案,⽬前还没找到然⽽⽂档中也指明了,是会放到同⼀帧的,所以估计这思路没戏了12. iOS⾼版本中,在微信内访问⽹页,⾳频背景⾳乐⽆法⾃动播放其实在⾼版本浏览器中,基于安全措施,已经不允许⾃动播放⾳频了,但在微信内是可以的微信安卓环境下正常,但在⾼版本的iOS下就失效了,解决办法是在微信的WeixinJSBridgeReady事件中播放即可document.addEventListener('WeixinJSBridgeReady', function() {...audio.play();...}, false)13. 分享微信页⾯到朋友圈时,没有图⽚logo⽂档中指明了要只⽤绝对路径,即协议名、域名、路径等等都要写全,漏写了就没了另外,路径要填写微信能够访问的地址,不能是内⽹的14. 在某些⼿机的微信中,分享页⾯成功后,会有已分享的提⽰信息,但有些⼿机却没有所以开发页⾯的时候,还得⾃⾏加个已分享的回调提⽰,⼼桑..15. 测试的时候发现,微信⾥页⾯的touchstart事件是不能取消的,即cancelable==false,在安卓的UC和Chrome中是为true的16. 在smarty环境下,通过后端拿到了⼀个变量值放在a标签的href属性中,点击后跳转的链接不对,17. z-index有拼爹的性质,z-index值只决定同⼀⽗元素中的同级⼦元素的堆叠顺序。
编程常见错误及解决方法
编程常见错误及解决方法编程是一门复杂而又精确的艺术,经常会遇到各种常见的错误。
这些错误可能导致程序崩溃、功能失效或者产生错误的输出。
然而,只要我们掌握了一些解决错误的方法,就能快速且有效地解决这些问题。
本文将介绍一些常见编程错误,并提供相应的解决方法。
一、语法错误语法错误是最常见的编程错误之一。
它指的是在程序中使用了错误的语言规则或标点符号,导致代码无法被解释或编译。
以下是一些常见的语法错误和解决方法:1. 拼写错误:在编程中,一个最简单且容易犯的错误就是拼写错误。
这可能是由于键入速度过快、键盘布局问题或者粗心大意导致的。
解决这类错误的方法是仔细检查代码并纠正拼写错误。
2. 缺少分号:在某些编程语言中,分号是分隔语句的重要符号。
如果忘记在代码的适当位置加上分号,将会导致编译错误。
解决这个问题的方法是检查每个语句末尾是否添加了分号。
3. 括号不匹配:在程序中使用括号是非常常见的,但是经常会出现括号不匹配的问题。
这可能是由于括号的数量或者位置错误导致的。
解决这个问题的方法是仔细检查每个括号,并确保它们是正确匹配的。
二、逻辑错误逻辑错误是指程序中的错误逻辑或错误的算法导致程序无法按照预期工作。
这些错误有时会很难发现,因为程序没有崩溃或给出错误的编译提示。
以下是一些常见的逻辑错误和解决方法:1. 循环错误:循环是编程中常用的结构之一,但是在编写循环时,很容易犯一些错误。
比如,如果循环条件不正确,可能导致程序进入无限循环,从而陷入死循环。
解决这个问题的方法是仔细检查循环条件,并确保循环会在适当的时候终止。
2. 逻辑判断错误:在编程中经常需要进行逻辑判断,如if语句中的条件判断。
在编写这些判断语句时,可能会出现逻辑错误,导致程序无法正确执行。
解决这个问题的方法是仔细检查逻辑判断条件,并确保它们能够满足预期的逻辑。
3. 算法错误:算法是编程中解决问题的步骤和方法。
如果算法设计错误,可能导致程序产生错误的输出或无法达到预期的结果。
java中常见的错误
java中的常见错误项目中遇到的错误sql错误找不到列Unknown column 'fillMen' in 'field list'2.列名在sql语句中写了2次Column 'fillMan' specified twice3.下面2条数据库插入对应的列都是int类型的所插入的数据类型不符合要求时报错Data truncated for column 'gatheringMoney' at row 1Data truncation: Out of range value adjusted for column 'amount' at row 14.Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause5.修改一个表时无法取得同一个表的数据ERROR 1093 (HY000): You can't specify target table 'context' for update in FROM clause6.主键未自动增长ERROR 1062 :7.int 类型字符过长com.mysql.jdbc.exceptions.MySQLDataException: '2.5026744582E10' in column '1' is outside valid range for the datatype INTEGER.8.没找到错误没影响数据读取java.sql.SQLException: Operation not allowed after ResultSet closed9.类型错误最常见的是数字类型错误Data truncated for column 'gatheringMoney' at row 110.换另一个项目时数据库连接池没换(未解)Name java: is not bound in this Context换了之后似乎还是不行=====java:/comp/env/jdbc/ConnSqlSer前面多了一个'/'应为java:comp/env/jdbc/ConnSqlSer=======11.\(未解)java.sql.SQLException: QueryRunner requires a DataSource to be invoked in this way, or a Connection should be passed in12.executeQuery()方法改成execute()(未解)Can not issue data m anipulation statem ents with executeQuery().Can not issue data m anipulation statem ents with executeQuery().struts错误Failed to obtain specified collection 下拉框没值警告: No FormBeanConfig found under 'yuanLiaoRuKuForm' 配置文件Form出错Cannot find bean: "org.apache.struts.taglib.ht ml.BEAN" in any scope<ht ml:text >标签外面没有嵌套<ht ml:form >标签No getter method for property: "out Date" of bean: "com.System.storage.form.YuanliaoPandianForm"在form里面没有定义此字段的get方法Cannot get a connection, pool error Tim eout waiting for idle object 数据库错误Operation not allowed after ResultSet closed 可能是结果集关闭了//在Action里面调用的DAO类没有进行重新实例化2008-5-12 20:02:09 org.apache.struts.action.RequestProcessor processException 警告: Unhandled Exception thrown: class ng.NullPointerException2008-5-12 20:02:09 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() for servlet action threw exceptionng.NullPointerExceptionatcom.System.storage.action.FinishedAction.finishedCheckAdd(FinishedAction.java: 151)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)//在C标签里从一个对象里取值时,所请求的是对象里没有的属性An error occurred while evaluating custom action attribute "value" with value "${rows.storageAmount}": Unable to find a value for "storageAmount" in object of class "com.System.storage.domain.Finished" using operator "." (null)forward 转向连接到了一个还没开始写的action里面而那个action所对应的jsp页面还没改Resources cannot be null.找不到下面这个actionCannot retrieve m apping for action /finished/finishedChuKuSearchCannot retrieve m apping for action /purveyAdd 如果把jsp页面的action写错了就这样报/jspfinance/client/ShouKuanJiLu_Sel.jsp(172,0) The end tag "</ht ml:form" is unbalanced类型转换错误一般是参数类型写错在公共方法或者配置文件里面找com.System.finance.client.form.GatheringForm cannot be cast to com.System.finance.client.form.InvoiceFormstruts标签里面写进了ht ml标签内的属性/jspclient/KeHuDangAn_Ins.jsp(44,88) equal symbol expected/jspfinance/client/TuiHuanHuo_Ins.jsp(70,42) quote sym bol expected/jspstorage/material/YuanLiaoChuKu_Ins.jsp(84,31) equal sym bol expectedorg.apache.jasper.JasperException: /scDept/dingDanXinZeng.jsp(333,167) equal sym bol expectedjsp页面上action写错了Cannot retrieve m apping for action /finished/finishedCheckAdd配置文件出错The content of elem ent type "action-m appings" must m atch "(action)*".java常见错误以及可能原因集锦2008-07-08 15:550、需要标识符a) 不在函数内1、非法表达式开始b) 可能:丢失括号 .2. no data founda) 可能:setInt(1,100)中,没有100这个值3. 找不到符号a) 可能:没导入包4. 指定了无效URLa) 可能:数据库名或IP错误,即连接出错5. 类路径没有找到a) 可能: ClassNotFoundException: oracle.jdbc.driver.OracleDriverb) 原因: 一般是指包名写错,或者没有import包,或者没有在类路径中找到jar文件c) 解决: 没有加载Oracle驱动jar,在.bash_profile中把ojdbc14.jar加进来6. 空指针异常a) 可能: 数据源错误比如数据库名或IP错误7. 不能执行查询a) 可能: 数据库中表的问题,比如列名不存在8. invalid identitya) 可能: 列名出错9. 若在数据库中创建了两个sequence ,运行时出现异常可能是先后执行了多次select语句,导致与原有的序列号产生冲突10. 表名或列名不存在a) 可能:表不存在或者没有插入数据到表中11. 不支持的类,类的版本错误a) 可能:没有导入jdk5.0,或者编译器仍为1.412. MappingNotFoundExceptiona) Maybe: In the Eclipse Not refersh , or not exist in the dirctory13. HibernateException: /hibernate.cfg.xm l not founda) Maybe1: hibernate.cfg.xml not in the root directoryb) Maybe2: Could not parse configuration .c) resolve: database not connect or use another database14. ConstraintViolationExceptiona) Maybe: used a not true database15. 驱动没有找到或者JDBC Driver not found可能:连接数据库的驱动jar包不存在或者版本不一致,比如将旧的版本换成新的会造成该类错误16. 空指针异常,ng.NullPointerExceptiona) 可能1:数据库连接出错,比如在hibernate.cfg.xml中的数据错误会导致异常。
前端开发技术中的常见错误和解决方法
前端开发技术中的常见错误和解决方法在前端开发过程中,经常会遇到各种各样的问题和错误。
这些问题可能是由于编码错误、逻辑错误或其他原因导致的。
本文将介绍一些前端开发中常见的错误,并提供相应的解决方法。
一、浏览器兼容性问题浏览器兼容性问题是前端开发中常见的问题之一。
由于不同浏览器对HTML、CSS和JavaScript的解析和渲染方式不同,可能会导致网页在不同浏览器上显示效果不一致或出现错误。
针对这个问题,我们可以采取以下解决方法:1. 使用CSS Reset重置样式:CSS Reset是一种将浏览器默认样式重置为统一样式的方法。
通过使用CSS Reset,我们可以确保网页在不同浏览器上的显示效果更加一致。
2. 使用CSS前缀:有些CSS属性在不同浏览器上需要加上相应的前缀才能正常工作,比如-webkit-、-moz-等。
我们可以通过CSS预处理器或自动添加前缀的工具来解决这个问题。
二、性能优化问题性能优化是前端开发中需要关注的一个重要方面。
一个网页的加载速度和响应速度对用户体验和搜索引擎优化都有着重要的影响。
常见的性能优化问题包括图片过大、JavaScript文件过大、渲染阻塞等。
以下是一些解决性能优化问题的方法:1. 压缩和合并文件:通过压缩CSS和JavaScript文件的大小以及合并多个文件,可以减少网络请求次数,提升网页加载速度。
2. 图片优化:通过使用适当的图片格式、进行图片压缩以及懒加载等方法,可以减少图片对网页性能的影响。
3. 异步加载脚本:将一些不需要立即执行的JavaScript代码进行异步加载,减少对渲染的阻塞,提升网页响应速度。
三、安全性问题在前端开发中,安全性问题也是需要重视的。
常见的安全性问题包括跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等。
以下是一些解决安全性问题的方法:1. 输入验证和过滤:对用户输入的数据进行验证和过滤,防止恶意脚本注入或其他安全漏洞。
2. 使用HTTPS协议:通过使用HTTPS协议,可以对网页传输的数据进行加密,提高数据的安全性。
前端开发中的错误处理与日志记录方法
前端开发中的错误处理与日志记录方法在前端开发中,错误处理与日志记录是非常重要的方面。
随着互联网技术的快速发展,更多的应用程序现在都是基于web的,而前端开发则成为了应用程序中不可或缺的一部分。
然而,由于前端开发本身的复杂性和依赖于后端服务的特点,错误处理和日志记录成为了前端开发人员必须要面对和解决的问题之一。
错误处理是指在应用程序运行过程中出现错误时,如何有效地捕获、处理和反馈给用户。
错误可以分为两种类型:运行时错误和逻辑错误。
运行时错误通常是由于代码错误、网络问题或浏览器兼容性等原因导致的,而逻辑错误则是由于程序逻辑不正确或用户输入错误导致的。
对于前端开发人员而言,了解和区分这两种错误是非常重要的。
针对运行时错误,前端开发人员可以通过合理的异常捕获机制进行处理。
在JavaScript中,可以使用try-catch语句来捕获异常,并对异常进行相应的处理。
例如,可以使用try-catch语句来捕获异步请求的错误,然后在错误发生时给用户显示一个友好的提示信息。
此外,前端开发人员还可以使用错误监控工具,如Sentry 等,来实时监控和捕获前端错误,并对错误信息进行分析和统计。
对于逻辑错误,前端开发人员需要通过合理的用户输入验证和业务逻辑验证来进行处理。
例如,在用户提交表单时,前端开发人员可以对用户输入进行验证,确保输入的数据符合要求。
同时,在前端开发过程中,可以使用断言和单元测试等方法,对代码的逻辑进行验证和测试,以减少逻辑错误的出现。
除了错误处理,日志记录也是前端开发中必不可少的一环。
通过日志记录,前端开发人员可以将应用程序运行过程中的相关信息存储起来,便于后续的排查和分析。
日志记录可以包括应用程序的运行状态、用户行为、输入输出等信息。
通过分析这些日志,前端开发人员可以发现潜在的问题并进行优化,提升应用程序的性能和用户体验。
在前端开发中,常见的日志记录方法包括控制台输出、文件记录和网络传输等。
控制台输出是最简单也是最常用的方法,通过调用console对象的方法,如console.log()、console.error()等,可以将日志信息输出到浏览器的控制台中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
答案:
PetOwner owner =ownerDao.selectOwner(ownersql,ownerparam); 2
???
3
4
答案:
把JDBC包放到你应用下的lib目录里,然后在环境变量里设置classpath指定到你lib目录如果是在eclipse里,就直接在项目里导入这个包就成
你的工程--属性--java build path--Libraries--add External Jar
String sql="select 1 from userinfo where uname=? and upwd=?";
Oracle数据库中的插入的数据不保存。
Commit;
用户名权限
jsp中用到response.getOutputStream(),比如验证码、jspSmartUpload,我们需要在最后加入如下代码:
response.reset();
out.clear();
out=pageContext.pushBody();
Sql语句错误
空指针
使用rs.next()提示"Unhandled exception type SQLException"
两种解决方法,第一种:try{
while(rs.next())
{
System.out.println("id"+rs.getString(1));
System.out.println("name"+rs.getString(2));
}
}catch(Exception e)
{
}
用try,catch包含
第二种:throws SQLException一下
public List<Comment> CommentList(String cnid) { List<Comment> comList=null;
comList = new ArrayList<Comment>();
Comment com=null;
com = new Comment();
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
先赋值null,,后new
public List display(String sql) {
News news=null;
news=new News();
List newsList=null;
newsList= new ArrayList();
try {
conn = super.getConn();
pstmt = conn.prepareStatement(sql);
rs=pstmt.executeQuery();
while(rs.next()){
news.setNtitle("ntitle");
news.setNauthor("nauthor");
news.setNcreatedate("ncreatedate");
news.setNcontent("ncontent");
news.setNid("nid");
newsList.add(news);
}
} catch (SQLException ex) {
ex.printStackTrace();
}finally{
super.closeAll(conn, pstmt, rs);
}
return newsList;
}
分页显示:
Top:
where
在form中加上enctype="multipart/form-data"
地址错误,
数组越界
String to Int
int i=Integer.parseInt("00102010");
<%@taglib uri="/jsp/jstl/core"prefix="c"%>
"jdbc:oracle:thin:@127.0.0.1:1521:sjbitdb";数据库名写错
【原创】tomcat 端口被占用Address already in use: JVM_Bind:8080
tomcat端口被占用的情况:
(一)已经启动了tomcat,如果没有关闭再次启动,就会报错
(二)没有tomcat启动,仍然报端口被占用。
可能是eclipse中启动了tomcat,eclipse异常终止后,tomcat 内核进程还在。
以我遇到的情况为例:
在eclipse中启动了tomcat,调试程序。
中途eclipse异常崩溃,我就重新打开了eclipse,再启动tomcat 时,报错:
严重: Error initializing endpoint
.BindException: Address already in use: JVM_Bind:8080
at .PoolTcpEndpoint.initEndpoint(PoolTcpEndpoint.java:297)
at org.apache.coyote.http11.Http11BaseProtocol.init(Http11BaseProtocol.java:138)
at org.apache.catalina.connector.Connector.initialize(Connector.java:1016)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:580)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:791)
at org.apache.catalina.startup.Catalina.load(Catalina.java:503)
at org.apache.catalina.startup.Catalina.load(Catalina.java:523)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at ng.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:266)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:431)
2009-10-28 17:18:55 org.apache.catalina.startup.Catalina load
我以为eclipse没启动好,结果又重启了一次,问题依旧。
我怀疑后台tomcat进程没关闭,关闭了eclipse,然后打开任务管理器,奇怪的是eclipse明明已经关掉了,却还存在一个javaw.exe进程,应该是eclipse异常崩溃导致。
于是结束这个javaw.exe进程,问题解决。
注:这个问题我遇到好多次了,今天写下来就是为了供刚入门的朋友参考。
类型转换错误。