﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-allen</title><link>http://www.blogjava.net/zhouzhou163/</link><description>专注于java ee技术,包括struts,jsf,webwork,spring,hibernate,ibatis</description><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 13:26:34 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 13:26:34 GMT</pubDate><ttl>60</ttl><item><title>$_SERVER的详细参数</title><link>http://www.blogjava.net/zhouzhou163/archive/2012/02/01/369142.html</link><dc:creator>robbin163</dc:creator><author>robbin163</author><pubDate>Wed, 01 Feb 2012 04:00:00 GMT</pubDate><guid>http://www.blogjava.net/zhouzhou163/archive/2012/02/01/369142.html</guid><wfw:comment>http://www.blogjava.net/zhouzhou163/comments/369142.html</wfw:comment><comments>http://www.blogjava.net/zhouzhou163/archive/2012/02/01/369142.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhouzhou163/comments/commentRss/369142.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhouzhou163/services/trackbacks/369142.html</trackback:ping><description><![CDATA[<div><p style="margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 2em; font-family: 'Segoe UI', Tahoma, Arial; line-height: 26px; -webkit-text-size-adjust: none; background-color: #f5faff; "><br /></p><table border="0" cellspacing="0" cellpadding="6" width="95%" align="center" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; width: 641px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f5faff; font-family: 'Segoe UI', Tahoma, Arial; line-height: 26px; -webkit-text-size-adjust: none; border-bottom-color: #0099cc; border-bottom-width: 1px; border-bottom-style: solid; border-left-color: #0099cc; border-left-width: 1px; border-left-style: solid; table-layout: fixed; border-top-color: #0099cc; border-top-width: 1px; border-top-style: solid; border-right-color: #0099cc; border-right-width: 1px; border-right-style: solid; "><tbody><tr><td bgcolor="#ddedfb" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #dddddd; border-right-color: #dddddd; border-bottom-color: #dddddd; border-left-color: #dddddd; word-wrap: break-word; ">$_SERVER['PHP_SELF'] #当前正在执行脚本的<span href="tag.php?name=%CE%C4%BC%FE">文件</span>名，与 document root相关。<br />$_SERVER['argv'] #传递给该脚本的参数。<br />$_SERVER['argc'] #包含传递给<span href="tag.php?name=%B3%CC%D0%F2">程序</span>的命令行参数的个数（如果运行在命令行模式）。<br />$_SERVER['GATEWAY_INTERFACE'] #服务器使用的 CGI 规范的版本。例如，&#8220;CGI/1.1&#8221;。<br />$_SERVER['SERVER_NAME'] #当前运行脚本所在服务器主机的名称。<br />$_SERVER['SERVER_SOFTWARE'] #服务器标识的字串，在响应请求时的头部中给出。<br />$_SERVER['SERVER_PROTOCOL'] #请求<span href="tag.php?name=%D2%B3%C3%E6">页面</span>时通信协议的名称和版本。例如，&#8220;HTTP/1.0&#8221;。<br />$_SERVER['REQUEST_METHOD'] #<span href="tag.php?name=%B7%C3%CE%CA">访问</span>页面时的请求方法。例如：&#8220;GET&#8221;、&#8220;HEAD&#8221;，&#8220;POST&#8221;，&#8220;PUT&#8221;。<br />$_SERVER['QUERY_STRING'] #<span href="tag.php?name=%B2%E9%D1%AF">查询</span>(query)的<span href="tag.php?name=%D7%D6%B7%FB">字符</span>串。<br />$_SERVER['DOCUMENT_ROOT'] #当前运行脚本所在的文档根目录。在服务器配置文件中定义。<br />$_SERVER['HTTP_ACCEPT'] #当前请求的 Accept: 头部的内容。<br />$_SERVER['HTTP_ACCEPT_CHARSET'] #当前请求的 Accept-Charset: 头部的内容。例如：&#8220;iso-8859-1,*,utf-8&#8221;。<br />$_SERVER['HTTP_ACCEPT_ENCODING'] #当前请求的 Accept-Encoding: 头部的内容。例如：&#8220;gzip&#8221;。<br />$_SERVER['HTTP_ACCEPT_LANGUAGE']#当前请求的 Accept-Language: 头部的内容。例如：&#8220;en&#8221;。<br />$_SERVER['HTTP_CONNECTION'] #当前请求的 Connection: 头部的内容。例如：&#8220;Keep-Alive&#8221;。<br />$_SERVER['HTTP_HOST'] #当前请求的 Host: 头部的内容。<br />$_SERVER['HTTP_REFERER'] #链接到当前页面的前一页面的 URL 地址。<br />$_SERVER['HTTP_USER_AGENT'] #当前请求的 User_Agent: 头部的内容。<br />$_SERVER['HTTPS'] &#8212; 如果通过https访问,则被设为一个非空的值(on)，否则返回off<br />$_SERVER['REMOTE_ADDR'] #正在浏览当前页面用户的 IP 地址。<br />$_SERVER['REMOTE_HOST'] #正在浏览当前页面用户的主机名。<br />$_SERVER['REMOTE_PORT'] #用户连接到服务器时所使用的端口。<br />$_SERVER['SCRIPT_FILENAME'] #当前执行脚本的绝对路径名。<br />$_SERVER['SERVER_ADMIN'] #管理员信息<br />$_SERVER['SERVER_PORT'] #服务器所使用的端口<br />$_SERVER['SERVER_SIGNATURE'] #包含服务器版本和虚拟主机名的字符串。<br />$_SERVER['PATH_TRANSLATED'] #当前脚本所在文件<span href="tag.php?name=%CF%B5%CD%B3">系统</span>（不是文档根目录）的基本路径。<br />$_SERVER['SCRIPT_NAME'] #包含当前脚本的路径。这在页面需要指向自己时非常有用。<br />$_SERVER['REQUEST_URI'] #访问此页面所需的 URI。例如，&#8220;/index.<span href="tag.php?name=html">html</span>&#8221;。<br />$_SERVER['PHP_AUTH_USER'] #当 PHP 运行在 Apache 模块方式下，并且正在使用 HTTP 认证功能，这个变量便是用户输入的用户名。<br />$_SERVER['PHP_AUTH_PW'] #当 PHP 运行在 Apache 模块方式下，并且正在使用 HTTP 认证功能，这个变量便是用户输入的密码。<br />$_SERVER['AUTH_TYPE'] #当 PHP 运行在 Apache 模块方式下，并且正在使用 HTTP 认证功能，这个变量便是认证的类型。</td></tr></tbody></table></div><img src ="http://www.blogjava.net/zhouzhou163/aggbug/369142.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhouzhou163/" target="_blank">robbin163</a> 2012-02-01 12:00 <a href="http://www.blogjava.net/zhouzhou163/archive/2012/02/01/369142.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RadomCodeServlet</title><link>http://www.blogjava.net/zhouzhou163/archive/2006/12/08/86320.html</link><dc:creator>robbin163</dc:creator><author>robbin163</author><pubDate>Fri, 08 Dec 2006 05:51:00 GMT</pubDate><guid>http://www.blogjava.net/zhouzhou163/archive/2006/12/08/86320.html</guid><wfw:comment>http://www.blogjava.net/zhouzhou163/comments/86320.html</wfw:comment><comments>http://www.blogjava.net/zhouzhou163/archive/2006/12/08/86320.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhouzhou163/comments/commentRss/86320.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhouzhou163/services/trackbacks/86320.html</trackback:ping><description><![CDATA[
		<p>
				<br />import java.awt.Color;<br />import java.awt.Font;<br />import java.awt.Graphics;<br />import java.awt.image.BufferedImage;<br />import java.io.IOException;<br />import java.io.PrintWriter;<br />import java.util.Random;</p>
		<p>import javax.imageio.ImageIO;<br />import javax.servlet.ServletException;<br />import javax.servlet.http.HttpServlet;<br />import javax.servlet.http.HttpServletRequest;<br />import javax.servlet.http.HttpServletResponse;</p>
		<p>public class RadomCodeServlet extends HttpServlet <br />{</p>
		<p> public void doGet(HttpServletRequest request, HttpServletResponse response)<br />   throws ServletException, IOException {<br />  doPost(request,response);<br /> }</p>
		<p>
				<br /> public void doPost(HttpServletRequest request, HttpServletResponse response)<br />   throws ServletException, IOException {<br />  //设置页面不缓存<br />  response.setHeader("Pragma","No-cache");<br />  response.setHeader("Cache-Control","no-cache");<br />  response.setDateHeader("Expires", 0);<br />  //在内存中创建图象<br />  int width=60, height=20;<br />  BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);</p>
		<p>  //获取图形上下文<br />  Graphics g = image.getGraphics();</p>
		<p>  //生成随机类<br />  Random random = new Random();</p>
		<p>  //设定背景色<br />  g.setColor(getRandColor(200,250));<br />  g.fillRect(0, 0, width, height);</p>
		<p>  //设定字体<br />  g.setFont(new Font("Times New Roman",Font.PLAIN,18));<br />  <br />  //随机产生155条干扰线，使图象中的认证码不易被其它程序探测到<br />  g.setColor(getRandColor(160,200));<br />  for (int i=0;i&lt;155;i++)<br />  {<br />          int x = random.nextInt(width);<br />          int y = random.nextInt(height);<br />          int xl = random.nextInt(12);<br />          int yl = random.nextInt(12);<br />          g.drawLine(x,y,x+xl,y+yl);<br />  }<br />  <br />  //取随机产生的认证码(4位数字)<br />  String sRand="";<br />  for (int i=0;i&lt;4;i++)<br />  {<br />      String rand=String.valueOf(random.nextInt(10));<br />      sRand+=rand;<br />      // 将认证码显示到图象中<br />      g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//调用函数出来的颜色相同，可能是因为种子太接近，所以只能直接生成<br />      g.drawString(rand,13*i+6,16);<br />  }</p>
		<p>  //将认证码存入SESSION<br />  request.getSession().setAttribute("rand",sRand);</p>
		<p>
				<br />  //图象生效<br />  g.dispose();</p>
		<p>  //输出图象到页面<br />  ImageIO.write(image, "JPEG", response.getOutputStream());  <br /> }<br /> <br /> //给定范围获得随机颜色<br /> private Color getRandColor(int fc,int bc)<br /> {<br />        Random random = new Random();<br />        if(fc&gt;255) fc=255;<br />        if(bc&gt;255) bc=255;<br />        int r=fc+random.nextInt(bc-fc);<br />        int g=fc+random.nextInt(bc-fc);<br />        int b=fc+random.nextInt(bc-fc);<br />        return new Color(r,g,b);<br />    }<br /> 调用:<br /> &lt;td height="25"&gt;<br />            &lt;div align="right"&gt;<br />             &lt;font color="#000000"&gt;验证码：&lt;/font&gt;<br />            &lt;/div&gt;<br />           &lt;/td&gt;<br />           &lt;td align="left"&gt;<br />            &lt;input type="text" name="randCode" size=10&gt;&lt;/input&gt;<br />            &lt;img style="cursor:hand" name="validatecode"<br />             src=" servlet/RadomCodeServlet" height="17" align="middle"<br />             onclick="document.validatecode.src=' servlet/RadomCodeServlet'"&gt;<br />           &lt;/td&gt;</p>
<img src ="http://www.blogjava.net/zhouzhou163/aggbug/86320.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhouzhou163/" target="_blank">robbin163</a> 2006-12-08 13:51 <a href="http://www.blogjava.net/zhouzhou163/archive/2006/12/08/86320.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MD5</title><link>http://www.blogjava.net/zhouzhou163/archive/2006/12/08/86319.html</link><dc:creator>robbin163</dc:creator><author>robbin163</author><pubDate>Fri, 08 Dec 2006 05:49:00 GMT</pubDate><guid>http://www.blogjava.net/zhouzhou163/archive/2006/12/08/86319.html</guid><wfw:comment>http://www.blogjava.net/zhouzhou163/comments/86319.html</wfw:comment><comments>http://www.blogjava.net/zhouzhou163/archive/2006/12/08/86319.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/zhouzhou163/comments/commentRss/86319.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhouzhou163/services/trackbacks/86319.html</trackback:ping><description><![CDATA[
		<p>import java.security.*;</p>
		<p>
				<br />public class MD5<br />{<br />  private static MD5 md5 = null;<br />  private MD5(){}<br />  public static MD5 getInstance()<br />  {<br />    if (md5 == null)<br />    {<br />      md5 = new MD5();<br />    }<br />    return md5;<br />  }</p>
		<p>  /**<br />   * Description:encrypt the String by "MD5"<br />   * @param str String<br />   * @return String<br />   */<br />  public String calcMD5(String str)<br />  {<br />    try<br />    {<br />      MessageDigest alga = MessageDigest.getInstance("MD5");<br />      alga.update(str.getBytes());<br />      byte[] digesta = alga.digest();<br />      return byte2hex(digesta);<br />    }<br />    catch (Exception e)<br />    {<br />      //System.out.println(e.getMessage());<br />      return null;<br />    }<br />  }</p>
		<p>  private String byte2hex(byte[] b)<br />  {<br />    String hs = "";<br />    String stmp = "";<br />    for (int n = 0; n &lt; b.length; n++)<br />    {<br />      stmp = (Integer.toHexString(b[n] &amp; 0XFF));<br />      if (stmp.length() == 1)<br />      {<br />        hs = hs + "0" + stmp;<br />      }<br />      else<br />      {<br />        hs = hs + stmp;<br />      }<br />      if (n &lt; b.length - 1)<br />      {<br />        hs = hs + "";<br />      }<br />    }<br />    return hs;<br />  }<br />}<br /></p>
<img src ="http://www.blogjava.net/zhouzhou163/aggbug/86319.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhouzhou163/" target="_blank">robbin163</a> 2006-12-08 13:49 <a href="http://www.blogjava.net/zhouzhou163/archive/2006/12/08/86319.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>cas add filed</title><link>http://www.blogjava.net/zhouzhou163/archive/2006/12/08/86317.html</link><dc:creator>robbin163</dc:creator><author>robbin163</author><pubDate>Fri, 08 Dec 2006 05:48:00 GMT</pubDate><guid>http://www.blogjava.net/zhouzhou163/archive/2006/12/08/86317.html</guid><wfw:comment>http://www.blogjava.net/zhouzhou163/comments/86317.html</wfw:comment><comments>http://www.blogjava.net/zhouzhou163/archive/2006/12/08/86317.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhouzhou163/comments/commentRss/86317.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhouzhou163/services/trackbacks/86317.html</trackback:ping><description><![CDATA[
		<p>package com.jama.credentials;</p>
		<p>import org.jasig.cas.authentication.principal.Credentials;</p>
		<p>public class LoginInfoCredentials<br />    implements Credentials<br />{</p>
		<p>    private String account;<br />    private String password;<br />    private String randCode;</p>
		<p>    public LoginInfoCredentials()<br />    {<br />    }</p>
		<p>    public String getAccount()<br />    {<br />        return account;<br />    }</p>
		<p>    public void setAccount(String account)<br />    {<br />        this.account = account;<br />    }</p>
		<p>    public String getPassword()<br />    {<br />        return password;<br />    }</p>
		<p>    public void setPassword(String password)<br />    {<br />        this.password = password;<br />    }</p>
		<p>    public String getRandCode()<br />    {<br />        return randCode;<br />    }</p>
		<p>    public void setRandCode(String randCode)<br />    {<br />        this.randCode = randCode;<br />    }<br />}<br /><br /><br />package com.jama.credentials;</p>
		<p>import org.apache.commons.logging.Log;<br />import org.apache.commons.logging.LogFactory;<br />import org.jasig.cas.authentication.principal.*;</p>
		<p>// Referenced classes of package com.jama.credentials:<br />//            LoginInfoCredentials</p>
		<p>public class LoginInfoToPrincipalResolver<br />    implements CredentialsToPrincipalResolver<br />{</p>
		<p>    private final Log log = LogFactory.getLog(getClass());</p>
		<p>    public LoginInfoToPrincipalResolver()<br />    {<br />    }</p>
		<p>    public Principal resolvePrincipal(Credentials credentials)<br />    {<br />        LoginInfoCredentials loginInfo = (LoginInfoCredentials)credentials;<br />        if(log.isDebugEnabled())<br />        {<br />            log.debug((new StringBuilder("Creating SimplePrincipal for [")).append(loginInfo.getAccount()).append("]").toString());<br />        }<br />        return new SimplePrincipal(loginInfo.getAccount());<br />    }</p>
		<p>    public boolean supports(Credentials credentials)<br />    {<br />        return credentials != null &amp;&amp; com/jama/credentials/LoginInfoCredentials.isAssignableFrom(credentials.getClass());<br />    }<br />}<br /></p>
<img src ="http://www.blogjava.net/zhouzhou163/aggbug/86317.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhouzhou163/" target="_blank">robbin163</a> 2006-12-08 13:48 <a href="http://www.blogjava.net/zhouzhou163/archive/2006/12/08/86317.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript去前后空格</title><link>http://www.blogjava.net/zhouzhou163/archive/2006/11/18/81929.html</link><dc:creator>robbin163</dc:creator><author>robbin163</author><pubDate>Sat, 18 Nov 2006 06:35:00 GMT</pubDate><guid>http://www.blogjava.net/zhouzhou163/archive/2006/11/18/81929.html</guid><wfw:comment>http://www.blogjava.net/zhouzhou163/comments/81929.html</wfw:comment><comments>http://www.blogjava.net/zhouzhou163/archive/2006/11/18/81929.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhouzhou163/comments/commentRss/81929.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhouzhou163/services/trackbacks/81929.html</trackback:ping><description><![CDATA[
		<p>function ltrim(str) {<br />        var pattern = new RegExp("^[\\s]+","gi");<br />        return str.replace(pattern,"");<br />}</p>
		<p>function rtrim(str) {<br />        var pattern = new RegExp("[\\s]+$","gi");<br />        return str.replace(pattern,"");<br />}<br />function trim(str) {<br />        return rtrim(ltrim(str));<br />} <br /></p>
<img src ="http://www.blogjava.net/zhouzhou163/aggbug/81929.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhouzhou163/" target="_blank">robbin163</a> 2006-11-18 14:35 <a href="http://www.blogjava.net/zhouzhou163/archive/2006/11/18/81929.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个简单的ajax</title><link>http://www.blogjava.net/zhouzhou163/archive/2006/11/17/81738.html</link><dc:creator>robbin163</dc:creator><author>robbin163</author><pubDate>Fri, 17 Nov 2006 04:43:00 GMT</pubDate><guid>http://www.blogjava.net/zhouzhou163/archive/2006/11/17/81738.html</guid><wfw:comment>http://www.blogjava.net/zhouzhou163/comments/81738.html</wfw:comment><comments>http://www.blogjava.net/zhouzhou163/archive/2006/11/17/81738.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhouzhou163/comments/commentRss/81738.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhouzhou163/services/trackbacks/81738.html</trackback:ping><description><![CDATA[
		<p>index.jsp<br />&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&gt;<br />&lt;HTML&gt;<br />&lt;HEAD&gt;<br />&lt;TITLE&gt; New Document &lt;/TITLE&gt;<br />&lt;META NAME="Generator" CONTENT="EditPlus"&gt;<br />&lt;META NAME="Author" CONTENT=""&gt;<br />&lt;META NAME="Keywords" CONTENT=""&gt;<br />&lt;META NAME="Description" CONTENT=""&gt;<br />&lt;/HEAD&gt;<br />&lt;script language="javascript"&gt;<br />function detect(){<br />  xml=new ActiveXObject("Microsoft.XMLHTTP");<br />  var post="";<br />  xml.open("POST","<a href="http://localhost:8080/xmlhttp.jsp&quot;,false">http://localhost:8080/xmlhttp.jsp",false</a>);<br />  xml.setrequestheader("content-length" ,post.length); <br />  xml.setrequestheader("content-type" , "application/x-www-form-urlencoded" ); <br />  xml.send(post);<br />  var res=xml.responseText;<br />  list.innerText=res;<br />  setTimeout("detect()",1000);<br />}<br />&lt;/script&gt;</p>
		<p>&lt;body onload = "detect()"&gt;<br />test : <br />     &lt;a id="list" &gt;  &lt;/a&gt;</p>
		<p>&lt;/BODY&gt;<br />&lt;/HTML&gt;<br /><br /><br />xmlhttp.jsp<br />&lt;%@ page language="java" contentType="text/html;charset=GB2312"%&gt;<br />&lt;%@ page import ="java.util.*"%&gt;<br />&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&gt;<br />&lt;HTML&gt;<br />&lt;HEAD&gt;<br />&lt;TITLE&gt; New Document &lt;/TITLE&gt;<br />&lt;META NAME="Generator" CONTENT="EditPlus"&gt;<br />&lt;META NAME="Author" CONTENT=""&gt;<br />&lt;META NAME="Keywords" CONTENT=""&gt;<br />&lt;META NAME="Description" CONTENT=""&gt;<br />&lt;/HEAD&gt;</p>
		<p>&lt;BODY&gt;<br />&lt;%<br />  Random randor=new Random();<br />  out.println(randor.nextInt());<br />%&gt;<br />&lt;/BODY&gt;<br />&lt;/HTML&gt;<br /></p>
<img src ="http://www.blogjava.net/zhouzhou163/aggbug/81738.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhouzhou163/" target="_blank">robbin163</a> 2006-11-17 12:43 <a href="http://www.blogjava.net/zhouzhou163/archive/2006/11/17/81738.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jasperreport生成html,Excel,PDF报表，数据源使用List</title><link>http://www.blogjava.net/zhouzhou163/archive/2006/11/12/80760.html</link><dc:creator>robbin163</dc:creator><author>robbin163</author><pubDate>Sun, 12 Nov 2006 14:21:00 GMT</pubDate><guid>http://www.blogjava.net/zhouzhou163/archive/2006/11/12/80760.html</guid><wfw:comment>http://www.blogjava.net/zhouzhou163/comments/80760.html</wfw:comment><comments>http://www.blogjava.net/zhouzhou163/archive/2006/11/12/80760.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/zhouzhou163/comments/commentRss/80760.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhouzhou163/services/trackbacks/80760.html</trackback:ping><description><![CDATA[
		<p>jasperreport中可以使用List作为数据源，使用格式如下.<br />List list=this.customerDao.getAllCustomer();  //得到所有客户<br />JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(list);<br />   JasperPrint jasperPrint = JasperFillManager.fillReport(<br />     reportFilePath, parameters, ds);<br />得填充数据后，即可输出显示到PDF,Excel,Html<br />到PDF:<br />public byte[] generatePDF(String begCustNo, String endCustNo,<br />   String reportTitle, String reportFilePath) throws DemoException {<br />  // TODO Auto-generated method stub<br /> //begCustNo,endCustNo分别为查询传入的开始编号，结束编号.<br />  jdbcCustomerDao = new JdbcCustomerDao();<br />  Map parameters = new HashMap();<br />  parameters.put("ReportTitle", reportTitle);//报表标题<br />  List list = jdbcCustomerDao.getAllCustomer(begCustNo, endCustNo);<br />   try {<br />   JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(list);<br />   JasperPrint jasperPrint = JasperFillManager.fillReport(<br />     reportFilePath, parameters, ds);   return JasperExportManager.exportReportToPdf(jasperPrint);<br />  } catch (JRException e) {<br />   throw new DemoException("Report Export Failed.");<br />  }<br /> }<br />到Html:<br />public byte[] generateHtml(String begCustNo, String endCustNo,<br />   String reportTitle, String reportFilePath) throws DemoException {<br />  jdbcCustomerDao = new JdbcCustomerDao();<br />  Map parameters = new HashMap();<br />  parameters.put("ReportTitle", reportTitle);<br />  List list = jdbcCustomerDao.getAllCustomer(begCustNo, endCustNo);<br />  System.out.println("list size is :" + list.size());<br />  JRHtmlExporter exporter = new JRHtmlExporter();<br />  ByteArrayOutputStream oStream = new ByteArrayOutputStream();<br />  try {<br />   JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(list);<br />   JasperPrint jasperPrint = JasperFillManager.fillReport(<br />     reportFilePath, parameters, ds);<br />   exporter.setParameter(<br />     JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,<br />     Boolean.FALSE);<br />   exporter<br />     .setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);<br />   exporter<br />     .setParameter(JRExporterParameter.CHARACTER_ENCODING, "GBK");<br />   exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, oStream);<br />   exporter.exportReport();<br />   byte[] bytes = oStream.toByteArray();<br />   return bytes;<br />  } catch (JRException e) {<br />   throw new DemoException("Report Export Failed.");<br />  }<br /> }<br />到Excel:<br />public byte[] generateExcel(String begCustNo, String endCustNo,<br />   String reportTitle, String reportFilePath) throws DemoException {<br />  jdbcCustomerDao = new JdbcCustomerDao();<br />  Map parameters = new HashMap();<br />  parameters.put("ReportTitle", reportTitle);<br />  List list = jdbcCustomerDao.getAllCustomer(begCustNo, endCustNo);<br />  System.out.println("list size is :" + list.size());<br />  JRXlsExporter exporter = new JRXlsExporter(); // Excel<br />  ByteArrayOutputStream oStream = new ByteArrayOutputStream();<br />  try {<br />   JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(list);<br />   JasperPrint jasperPrint = JasperFillManager.fillReport(<br />     reportFilePath, parameters, ds);<br />   exporter<br />     .setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);<br />   exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, oStream);<br />   exporter.setParameter(<br />     JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,<br />     Boolean.TRUE);<br />   exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,<br />     Boolean.FALSE);<br />   exporter.setParameter(<br />     JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,<br />     Boolean.FALSE);<br />   exporter.exportReport();<br />   byte[] bytes = oStream.toByteArray();<br />   return bytes;</p>
		<p>  } catch (JRException e) {<br />   throw new DemoException("Report Export Failed.");<br />  }<br /> }<br /><br />jsp调用方法：<br /> &lt;%<br />     <br />    <br /> String filePath=getServletContext().getRealPath("/")+"report.jasper"; <br /><br /> CustomerServiceImpl  custs=new CustomerServiceImpl();<br />    byte[] bytes=null;<br />  String begNo=request.getParameter("beginCustNo");<br />  String endNo=request.getParameter("endCustNo");<br />  String type=request.getParameter("type");<br /><br />  if(type.equals("Pdf")){ <br />      bytes= custs.generatePDF(begNo,endNo,"客户资料明细表",filePath);<br />  }else if(type.equals("Excel")){<br />   bytes=custs.generateExcel(begNo,endNo,"客户资料明细表",filePath);<br />  }else<br />     bytes=custs.generateHtml(begNo,endNo,"客户资料明细表",filePath);</p>
		<p>
				<br /> if(bytes!=null){<br />  if(type.equals("Pdf")){<br />         response.setContentType("application/pdf");<br />  }else if(type.equals("Excel")){<br />     response.setContentType("application/vnd.ms-excel"); <br />  }else<br />   response.setContentType("text/html"); <br />    response.setContentLength(bytes.length);<br />    ServletOutputStream ouputStream = response.getOutputStream();<br />    ouputStream.write(bytes,0,bytes.length);<br />    ouputStream.flush();<br />    ouputStream.close();<br /> }else<br /> {<br />  out.println("error");<br /> }<br /> </p>
		<p> </p>
		<p>  %&gt;</p>
<img src ="http://www.blogjava.net/zhouzhou163/aggbug/80760.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhouzhou163/" target="_blank">robbin163</a> 2006-11-12 22:21 <a href="http://www.blogjava.net/zhouzhou163/archive/2006/11/12/80760.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>