[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\"?>");
分享到:
相关推荐
Request 对象是javax.servlet.ServletRequest的子类型,“Request”对象代表的是来自客户端的请求,例如我们在FORM表单中填写的信息等,最常用的对象方法有getParameter、getParameterNames和getParameterValues通过...
JSP引擎产生一个Session对象,同时分配一个String类型的ID号,JSP引擎同时将这换个ID号发送到客户端,存放在Cookie中,这样Session对象,直到客户关闭浏览器后,服务器端该客户的Session对象才取消,并且和客户的...
out.print(this.getClass() + this.getServletConfig().getServletContext().getInitParameter("a")); out.println(", using the GET method"); out.println(" </BODY>"); out.println("</HTML>"); out....
在 Java 客户端中,我们使用了接口来描述远程方法,之后我们通过 useService 方法返回一个远程代理对象,该对象实现了我们定义的接口,之后我们就可以直接调用远程方法 helloWorld 了。如果你比较细心的话,你还会...
在 Java 客户端中,我们使用了接口来描述远程方法,之后我们通过 useService 方法返回一个远程代理对象,该对象实现了我们定义的接口,之后我们就可以直接调用远程方法 helloWorld 了。如果你比较细心的话,你还会...
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); out.println(" <BODY>"); out.print(" This is "); out.print(this.getClass()); out.println(", using the GET method"); out.println(" ...
System.out.println(flag); if (!flag) { String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";// 驱动类 String url = "jdbc:sqlserver://localhost:1433;DatabaseName=users"; // 连接...
C) Java中的封装就是将对象的数据和操作数据的方法相结合,通过方法将对象的数据和实现细节保护起来。 D) Java语言中的多态的含义可以表达为:对外一个接口,内部多种实现。Java语言支持两种多态:运行时多态和编译...
javaBean的用处主要在于存取页面信息,通过getXXX和setXXX方法实现。 1、声明javaBean <jsp:useBean id="localName" class="com.jguru.Person" scope="application" /> Id:是类的代号 Class:是类的全名 Scope...
最近工作中遇到不少问题。总结一下。这段代码主要功能是将一个生成JSP页面转发成PDF输出到页面 需要利用ITEXT String html = ServletUtils.forward(request,response,/WEB-INF/jsp/depot/print/jhd.jsp); //转发...
form action="add_do.jsp" name="formlft" method="post" ENCTYPE="multipart/form-data" check(this)"> <tr><TD width=18% align="center">date: <td align=center width='18%'><input type=...
d) 在bb.jsp中使用session的getAttribute方法取出的对象和aa.jsp中的beanName所引用的对象无关。 10) 用JSP2.0表达式语法在JSP页面上正确显示10+20的结果的是()。 a) ${10+20} b) ${10+20}; c) $(10+20)...
System.out.println("希腊字母\'α\'在unicode表中的顺序位置:"+(int)cStart); System.out.println("希腊字母表:"); for(int i=startPosition;i;i++) { char c='\\0'; c=(char)i ; //i做char型转换运算,并将...
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 ...
System.out.print("请输入年份"); int year; //定义输入的年份名字为“year” Scanner scanner = new Scanner(System.in); year = scanner.nextInt(); if (year||year>3000){ System.out.println("年份有误,...
System.out.println("Col_link表中的数据如下(原始数据)"); //下面的语句使用了一个while循环打印出了col_link表中的所有的数据 System.out.println("站点名 "+" "+"站点地址"); System.out.println("-----------...
println( " print()... " ); List< Cliente> lista = Arrays . asList( new Cliente ( 1 , " AAAAAAA " , " 123456789 " ), new Cliente ( 2 , " BBBBBBBBBBBB " , " 987654321 " ), ...
在 Java 客户端中,我们使用了接口来描述远程方法,之后我们通过 useService 方法返回一个远程代理对象,该对象实现了我们定义的接口,之后我们就可以直接调用远程方法 helloWorld 了。如果你比较细心的话,你还会...
在 Java 客户端中,我们使用了接口来描述远程方法,之后我们通过 useService 方法返回一个远程代理对象,该对象实现了我们定义的接口,之后我们就可以直接调用远程方法 helloWorld 了。如果你比较细心的话,你还会...
在 Java 客户端中,我们使用了接口来描述远程方法,之后我们通过 useService 方法返回一个远程代理对象,该对象实现了我们定义的接口,之后我们就可以直接调用远程方法 helloWorld 了。如果你比较细心的话,你还会...