`

JSP中out对象的print()和println()方法

 
阅读更多
[b][b]在JSP中,通常在页面中显示结果,用的最多的非out.print()或者out.println()莫属了,这两种方式输出的结果一样吗?答案是否定的。
在没学Ajax之前,我也和大多数学Java的JSP程序员一样,认为print()和println()是一样的作用,因为在JSP页面中分别用这两个方法输出的结果是一样的呀!另外在用Java写的应用程序中System.out.print()不换行地输出结果, System.out.println()是换行地输出要输出的结果呀
从表面上来看,确实是这样的。在JSP网页中,用out.print()或者out.println()输出的结果显示在JSP页面上是一样的。事实上,他们两个输出的结果是不一样的,下面看两个实例来证明:
[/b][/b]
View.jsp页面:
  <%@ page c language="java"%>
<html>
<head>
<title>Print()和Println()的输出验证</title>
<script language="javascript" type="text/javascript">
<!--
var xmlHttp;
function createXMLHttpRequest(){
  if(window.ActiveXObject){
  xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  else if(window.XMLHttpRequest){
  xmlHttp = new XMLHttpRequest();
  }
}
function getData()
{
createXMLHttpRequest();
var url = "showdata.jsp";
  xmlHttp.open("GET",url,true);
  xmlHttp.onreadystatechange = showResult;
  xmlHttp.send(null);
}
function showResult(){
  if(xmlHttp.readyState == 4){
         if(xmlHttp.status == 200){
         var result = xmlHttp.responseText;
         alert(result);
//在这里弹出一个对话框,草榴社区显示返回的结果。在这里就可以看出,print()和println()的不同。
         }
  }
}
//-->
</script>
</head>
<body >
</body>
< ml>
Showdata.jsp页面:
<%@ page  c language="java" %>
<%@ page import="java.sql.*"%>
<%
ResultSet  rs = null;
Connection con = null;
PreparedStatement ps = null;
try
{
   Class.forName("com.mysql.jdbc.Driver");
   String url ="jdbc:mysql://localhost:3306/ajax";
   con = DriverManager.getConnection(url,"root","tdy218");
  String sql = "select * from  printtest";
  ps = con.prepareStatement(sql);
  rs = ps.executeQuery();
  while(rs.next())
  {
   out.println("<res>"+rs.getString("major")+"</res>");  //妞妞基地输出方式一、换行输出。
  // out.print("<res>"+rs.getString("major")+"</res>"); //输出方式二、不换行输出。
  }
  con.close();
}
catch(Exception e)
{
System.out.print(e.getMessage());
}
%>

方式一的输出结果:

   方式二的输出结果:

  
为了进一步证明我的结论,你也可以这样做(把上面那个Showdata.jsp的输出页面的输出对象改为System,在控制台输出,这样应该更有说服力):
<%@ page  c language="java" %>
<%@ page import="java.sql.*"%>
<%
ResultSet  rs = null;
Connection con = null;
PreparedStatement ps = null;
try
{
//此教程来源于97xxoo教程网(www.97xxoo.org)\
//查看完整的教程请点:http://www.97xxoo.org/article/3/2008/20081114334.shtml
   Class.forName("com.mysql.jdbc.Driver");
   String url ="jdbc:mysql://localhost:3306/ajax";
   con = DriverManager.getConnection(url,"root","tdy218");
  String sql = "select * from  printtest";
  ps = con.prepareStatement(sql);
  rs = ps.executeQuery();
  while(rs.next())
  {
   System.out.println("<res>"+rs.getString("major")+"</res>");  //输出方式一、换行输出。
  // System.out.print("<res>"+rs.getString("major")+"</res>"); //输出方式二、不换行输出。
  }
  con.close();
}
catch(Exception e)
{
System.out.print(e.getMessage());
}
%>

System.out.print()和System.out.println()的两种输出方式的输出结果:

  
      总结:在JSP页面中,用out.println()这种方式输出结果本质上会换行,但是是写在程序片中输出的。JSP程序片又是可以写在HTML标签中的,这样就等于程序片中的内容以无标签(这里指的是html标签)的格式(纯文本格式)输出。所以输出的内容就没换行,要换行也得加html标签中的<p></p>或者<br>之类的标签。试验证明:以contentType设置成:text/xml(以XML格式显示数据)也一样满足我的结论。时间关系,就写这么多了。下面我简单的把XML格式的显示写法提一下:
        JSP页面中这样写:写在while(rs.next())的上面。
              response.setContentType("text/xml; charset=gbk");  
              response.setHeader("Cache-Control","no-cache");
              out.println("<?xml  version=\"1.0\"  encoding=\"gbk\"?>");
       Servlet里这样写:同样写在while(rs.next())的上面。
              response.setContentType("text/xml; charset=gbk");  
              response.setHeader("Cache-Control","no-cache");
              response.getWriter().write("<?xml  version=\"1.0\"  encoding=\"gbk\"?>");
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    JSP的九个内置对象及四个作用域

    Request 对象是javax.servlet.ServletRequest的子类型,“Request”对象代表的是来自客户端的请求,例如我们在FORM表单中填写的信息等,最常用的对象方法有getParameter、getParameterNames和getParameterValues通过...

    jsp九大内置对象

    JSP引擎产生一个Session对象,同时分配一个String类型的ID号,JSP引擎同时将这换个ID号发送到客户端,存放在Cookie中,这样Session对象,直到客户关闭浏览器后,服务器端该客户的Session对象才取消,并且和客户的...

    网上书城 购物系统 jsp

    out.print(this.getClass() + this.getServletConfig().getServletContext().getInitParameter("a")); out.println(", using the GET method"); out.println(" &lt;/BODY&gt;"); out.println("&lt;/HTML&gt;"); out....

    JSP API接口和返回的版本

    在 Java 客户端中,我们使用了接口来描述远程方法,之后我们通过 useService 方法返回一个远程代理对象,该对象实现了我们定义的接口,之后我们就可以直接调用远程方法 helloWorld 了。如果你比较细心的话,你还会...

    JS JSP ASP .NET J2AM API接口和返回的版本

    在 Java 客户端中,我们使用了接口来描述远程方法,之后我们通过 useService 方法返回一个远程代理对象,该对象实现了我们定义的接口,之后我们就可以直接调用远程方法 helloWorld 了。如果你比较细心的话,你还会...

    医院管理系统.rar

    out.println(" &lt;HEAD&gt;&lt;TITLE&gt;A Servlet&lt;/TITLE&gt;&lt;/HEAD&gt;"); out.println(" &lt;BODY&gt;"); out.print(" This is "); out.print(this.getClass()); out.println(", using the GET method"); out.println(" ...

    JSP+java开发

    System.out.println(flag); if (!flag) { String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";// 驱动类 String url = "jdbc:sqlserver://localhost:1433;DatabaseName=users"; // 连接...

    java经典面试2010集锦100题(不看你后悔)

    C) Java中的封装就是将对象的数据和操作数据的方法相结合,通过方法将对象的数据和实现细节保护起来。 D) Java语言中的多态的含义可以表达为:对外一个接口,内部多种实现。Java语言支持两种多态:运行时多态和编译...

    jsp结合javabean的实践

    javaBean的用处主要在于存取页面信息,通过getXXX和setXXX方法实现。 1、声明javaBean &lt;jsp:useBean id="localName" class="com.jguru.Person" scope="application" /&gt; Id:是类的代号 Class:是类的全名 Scope...

    动态jsp页面转PDF输出到页面的实现方法

    最近工作中遇到不少问题。总结一下。这段代码主要功能是将一个生成JSP页面转发成PDF输出到页面 需要利用ITEXT String html = ServletUtils.forward(request,response,/WEB-INF/jsp/depot/print/jhd.jsp); //转发...

    jspSmartUpload上传下载

    form action="add_do.jsp" name="formlft" method="post" ENCTYPE="multipart/form-data" check(this)"&gt; &lt;tr&gt;&lt;TD width=18% align="center"&gt;date: &lt;td align=center width='18%'&gt;&lt;input type=...

    J2EE面试题

    d) 在bb.jsp中使用session的getAttribute方法取出的对象和aa.jsp中的beanName所引用的对象无关。 10) 用JSP2.0表达式语法在JSP页面上正确显示10+20的结果的是()。 a) ${10+20} b) ${10+20}; c) $(10+20)...

    Java 2实用教程(第三版)实验指导与习题解答

    System.out.println("希腊字母\'α\'在unicode表中的顺序位置:"+(int)cStart); System.out.println("希腊字母表:"); for(int i=startPosition;i;i++) { char c='\\0'; c=(char)i ; //i做char型转换运算,并将...

    JSP Simple Examples

    To print a Date in JSP firstly we are importing a class named java.util.Date of the package java.util. This package is imported in the jsp page so that the Date class and its properties can accessed ...

    达内 coreJava 习题答案

    System.out.print("请输入年份"); int year; //定义输入的年份名字为“year” Scanner scanner = new Scanner(System.in); year = scanner.nextInt(); if (year||year&gt;3000){ System.out.println("年份有误,...

    java程序是怎么操作数据库的,可以以常用据库为例,求详细解答,最好能举例。

    System.out.println("Col_link表中的数据如下(原始数据)"); //下面的语句使用了一个while循环打印出了col_link表中的所有的数据 System.out.println("站点名 "+" "+"站点地址"); System.out.println("-----------...

    PrintJs:通过 Javascript 向打印机发送内容的应用程序示例

    println( " print()... " ); List&lt; Cliente&gt; lista = Arrays . asList( new Cliente ( 1 , " AAAAAAA " , " 123456789 " ), new Cliente ( 2 , " BBBBBBBBBBBB " , " 987654321 " ), ...

    PHP API接口和返回的版本

    在 Java 客户端中,我们使用了接口来描述远程方法,之后我们通过 useService 方法返回一个远程代理对象,该对象实现了我们定义的接口,之后我们就可以直接调用远程方法 helloWorld 了。如果你比较细心的话,你还会...

    .NET API接口和返回的版本

    在 Java 客户端中,我们使用了接口来描述远程方法,之后我们通过 useService 方法返回一个远程代理对象,该对象实现了我们定义的接口,之后我们就可以直接调用远程方法 helloWorld 了。如果你比较细心的话,你还会...

    JS API接口和返回的版本

    在 Java 客户端中,我们使用了接口来描述远程方法,之后我们通过 useService 方法返回一个远程代理对象,该对象实现了我们定义的接口,之后我们就可以直接调用远程方法 helloWorld 了。如果你比较细心的话,你还会...

Global site tag (gtag.js) - Google Analytics