1.软文推荐

2.软文推荐

3.软文推荐

jsp即java server pages,顾名思义就是java服务器端页面,是一种动态的页面开发技术。并且jsp实现了html中插入java代码的技术,是放在服务器端的页面,用户访问时返回的是一个html文本,所以只需要有浏览器就能进行访问。

要测试/调试一个JSP或servlet程序总是那么的难。JSP和Servlets程序趋向于牵涉到大量客户端/服务器之间的交互,这很有可能会产生错误,并且很难重现出错的环境。

接下来将会给出一些小技巧和小建议,来帮助您调试程序。

使用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。

本文来源:www.lxlinux.net/9406.html,若引用不当,请联系修改。

相关文章 8

1

腾讯云服务器618活动:企业新用户低至0.6折,2核4G3M仅363元/年(腾讯云服务器学生优惠) 31秒前

腾讯云服务器618活动: 云服务器首年95元起,更有总价值6188元代金券免费领,企业专享优惠产品低至1折起,其中2核4G3M云服务器仅需363元...

2

Linux系统nice命令详解 1分钟前

Linux系统中nice命令以更改过的优先序来执行程序,如果未指定程序,则会印出目前的排程优先序,下面良许教程网为大家详细讲解一下Linu...

3

百度智能云1折云主机 爆款云服务器仅需60元/年(百度云盘优惠卷) 2分钟前

2019年,百度智能云推出了“ 百度智能云1折云主机 ”活动,百度智能云和阿里云、腾讯云一样都是提供公有云计算服务的,不过相比阿里云...

4

HostYun:香港直连vps/1GB内存/10GB SSD空间/300GB流量/50Mbps/KVM/18元/月(香港hostally) 3分钟前

hostyun怎么样? hostyun原为 Hostshare(主机分享),2012年成立,主要提供VPS,主力为KVM VPS,数据中心有日本IIJ、日本软银、韩国BGP等。之前介绍过...

5

2021年阿里云618年中大促:阿里云服务器限量秒杀,云服务器低至59元/年起(2021年阿里巴巴 6分钟前

阿里云618年中大促今日已经正式开启,云服务器更是低至59.9元/年起。 阿里云618活动多款云服务器低价秒杀,另外云数据库RDS、短信套餐、...

6

Linux系统netcat 命令示例 6分钟前

netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。netcat所做的就是在两台电脑之间建立链接并返回两个数据流,通过与其...

7

linux重置密码提示与用户名相似该怎么解决? 7分钟前

有时我们给oracle设置密码后却一直提示:the password contains the user name in some form,本篇文章和大家分享一下linux重置密码提示与用户名相似的解...

8

2021年阿里云与腾讯云618优惠活动:阿里云/腾讯云服务器618秒杀活动(阿里云 2021) 8分钟前

每年的618年中大促活动,一直很多电商平台都会办这个活动,像我们熟知的淘宝、天猫、东京等平台都会举办这样的活动。阿里云在5月25日...