这篇文章主要介绍“JSP调试技巧有哪些”,在日常操作中,相信很多人在JSP调试技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JSP调试技巧有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
使用System.out.println()
System.out.println()可以很方便地标记一段代码是否被执行。当然,我们也可以打印出各种各样的值。此外:
1.自从System对象成为Java核心对象后,它便可以使用在任何地方而不用引入额外的类。使用范围包括Servlets,JSP,RMI,EJB’s,Beans,类和独立应用。
2.与在断点处停止运行相比,用System.out进行输出不会对应用程序的运行流程造成重大的影响,这个特点在定时机制非常重要的应用程序中就显得非常有用了。
接下来给出了使用System.out.println()的语法:
System.out.println("Debugging message");
这是一个使用System.out.print()的简单例子:
"c" uri="http://java.sun.com/jsp/jstl/core" %>System.out.println"counter" begin="1" end="10" step="1" > "${counter-5}"/> "counter= " + pageContext.findAttribute("counter") ); %>
现在,如果运行上面的例子的话,它将会产生如下的结果:
-4 -3 -2 -1 0 1 2 3 4 5
如果使用的是Tomcat服务器,您就能够在logs目录下的stdout.log文件中发现多出了如下内容:
counter=1 counter=2 counter=3 counter=4 counter=5 counter=6 counter=7 counter=8 counter=9 counter=10
使用这种方法可以将变量和其它的信息输出至系统日志中,用来分析并找出造成问题的深层次原因。
使用JDB Logger
J2SE日志框架可为任何运行在JVM中的类提供日志记录服务。因此我们可以利用这个框架来记录任何信息。
让我们来重写以上代码,使用JDK中的 logger API:
"c" uri="http://java.sun.com/jsp/jstl/core" %> "java.util.logging.Logger" %>Logger.info"counter" begin="1" end="10" step="1" > set var="myCount" value="${counter-5}" /> "${myCount}"/> "counter=" + pageContext.findAttribute("counter") + " myCount=" + pageContext.findAttribute("myCount"); logger.info( message ); %>
它的运行结果与先前的类似,但是,它可以获得额外的信息输出至stdout.log文件中。在这我们使用了logger中的info方法。下面我们给出stdout.log文件中的一个快照:
24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService INFO: counter=1 myCount=-4 24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService INFO: counter=2 myCount=-3 24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService INFO: counter=3 myCount=-2 24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService INFO: counter=4 myCount=-1 24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService INFO: counter=5 myCount=0 24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService INFO: counter=6 myCount=1 24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService INFO: counter=7 myCount=2 24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService INFO: counter=8 myCount=3 24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService INFO: counter=9 myCount=4 24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService INFO: counter=10 myCount=5
消息可以使用各种优先级发送,通过使用sever(),warning(),info(),config(),fine(),finer(),finest()方法。finest()方法用来记录最好的信息,而sever()方法用来记录最严重的信息。
使用Log4J 框架来将消息记录在不同的文件中,这些消息基于严重程度和重要性来进行分类。
调试工具
NetBeans是树形结构,是开源的Java综合开发环境,支持开发独立的Java应用程序和网络应用程序,同时也支持JSP调试。
NetBeans支持如下几个基本的调试功能:
1.断点
2.单步跟踪
3.观察点
详细的信息可以查看NetBeans使用手册。
使用JDB Debugger
可以在JSP和servlets中使用jdb命令来进行调试,就像调试普通的应用程序一样。
通常,我们直接调试sun.servlet.http.HttpServer 对象来查看HttpServer在响应HTTP请求时执行JSP/Servlets的情况。这与调试applets非常相似。不同之处在于,applets程序实际调试的是sun.applet.AppletViewer。
大部分调试器在调试applets时都能够自动忽略掉一些细节,因为它知道如何调试applets。如果想要将调试对象转移到JSP身上,就需要做好以下两点:
1.设置调试器的classpath,让它能够找到sun.servlet.http.Http-Server 和相关的类。
2.设置调试器的classpath,让它能够找到您的JSP文件和相关的类。 设置好classpath后,开始调试sun.servlet.http.Http-Server 。您可以在JSP文件的任意地方设置断点,只要你喜欢,然后使用浏览器发送一个请求给服务器就应该可以看见程序停在了断点处。
使用注释
程序中的注释在很多方面都对程序的调试起到一定的帮助作用。注释可以用在调试程序的很多方面中。
JSP使用Java注释。如果一个BUG消失了,就请仔细查看您刚注释过的代码,通常都能找出原因。
客户端和服务器的头模块
有时候,当JSP没有按照预定的方式运行时,查看未加工的HTTP请求和响应也是很有用的。如果对HTTP的结构很熟悉的话,您可以直接观察request和response然后看看这些头模块到底怎么了。
重要调试技巧
这里我们再透露两个调试JSP的小技巧:
1.使用浏览器显示原始的页面内容,用来区分是否是格式问题。这个选项通常在View菜单下。
2.确保浏览器在强制重新载入页面时没有捕获先前的request输出。若使用的是Netscape Navigator浏览器,则用Shift-Reload;若使用的是IE浏览器,则用Shift-Refresh。
到此,关于“JSP调试技巧有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。