??xml version="1.0" encoding="utf-8" standalone="yes"?>$_SERVER['PHP_SELF'] #当前正在执行脚本?span href="tag.php?name=%CE%C4%BC%FE">文g名,?document root相关?br />$_SERVER['argv'] #传递给该脚本的参数?br />$_SERVER['argc'] #包含传递给E序的命令行参数的个敎ͼ如果q行在命令行模式Q?br />$_SERVER['GATEWAY_INTERFACE'] #服务器用的 CGI 规范的版本。例如,“CGI/1.1”?br />$_SERVER['SERVER_NAME'] #当前q行脚本所在服务器L的名U?br />$_SERVER['SERVER_SOFTWARE'] #服务器标识的字串Q在响应h时的头部中给出?br />$_SERVER['SERVER_PROTOCOL'] #h面旉信协议的名U和版本。例如,“HTTP/1.0”?br />$_SERVER['REQUEST_METHOD'] #讉K面时的hҎ。例如:“GET”?#8220;HEAD”Q?#8220;POST”Q?#8220;PUT”?br />$_SERVER['QUERY_STRING'] #查询(query)?span href="tag.php?name=%D7%D6%B7%FB">字符丌Ӏ?br />$_SERVER['DOCUMENT_ROOT'] #当前q行脚本所在的文根目录。在服务器配|文件中定义?br />$_SERVER['HTTP_ACCEPT'] #当前h?Accept: 头部的内宏V?br />$_SERVER['HTTP_ACCEPT_CHARSET'] #当前h?Accept-Charset: 头部的内宏V例如:“iso-8859-1,*,utf-8”?br />$_SERVER['HTTP_ACCEPT_ENCODING'] #当前h?Accept-Encoding: 头部的内宏V例如:“gzip”?br />$_SERVER['HTTP_ACCEPT_LANGUAGE']#当前h?Accept-Language: 头部的内宏V例如:“en”?br />$_SERVER['HTTP_CONNECTION'] #当前h?Connection: 头部的内宏V例如:“Keep-Alive”?br />$_SERVER['HTTP_HOST'] #当前h?Host: 头部的内宏V?br />$_SERVER['HTTP_REFERER'] #链接到当前页面的前一面?URL 地址?br />$_SERVER['HTTP_USER_AGENT'] #当前h?User_Agent: 头部的内宏V?br />$_SERVER['HTTPS'] — 如果通过https讉K,则被设ؓ一个非I的?on)Q否则返回off
$_SERVER['REMOTE_ADDR'] #正在览当前面用户?IP 地址?br />$_SERVER['REMOTE_HOST'] #正在览当前面用户的主机名?br />$_SERVER['REMOTE_PORT'] #用户q接到服务器时所使用的端口?br />$_SERVER['SCRIPT_FILENAME'] #当前执行脚本的绝对\径名?br />$_SERVER['SERVER_ADMIN'] #理员信?br />$_SERVER['SERVER_PORT'] #服务器所使用的端?br />$_SERVER['SERVER_SIGNATURE'] #包含服务器版本和虚拟L名的字符丌Ӏ?br />$_SERVER['PATH_TRANSLATED'] #当前脚本所在文?span href="tag.php?name=%CF%B5%CD%B3">pȝQ不是文根目录Q的基本路径?br />$_SERVER['SCRIPT_NAME'] #包含当前脚本的\径。这在页面需要指向自己时非常有用?br />$_SERVER['REQUEST_URI'] #讉K此页面所需?URI。例如,“/index.html”?br />$_SERVER['PHP_AUTH_USER'] #?PHP q行?Apache 模块方式下,q且正在使用 HTTP 认证功能Q这个变量便是用戯入的用户名?br />$_SERVER['PHP_AUTH_PW'] #?PHP q行?Apache 模块方式下,q且正在使用 HTTP 认证功能Q这个变量便是用戯入的密码?br />$_SERVER['AUTH_TYPE'] #?PHP q行?Apache 模块方式下,q且正在使用 HTTP 认证功能Q这个变量便是认证的cd?/td>
]]>
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RadomCodeServlet extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//讄面不缓?br /> response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
//在内存中创徏图象
int width=60, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
//获取囑Ş上下?br /> Graphics g = image.getGraphics();
//生成随机c?br /> Random random = new Random();
//讑֮背景?br /> g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);
//讑֮字体
g.setFont(new Font("Times New Roman",Font.PLAIN,18));
//随机产生155条干扰线Q图象中的认证码不易被其它E序探测?br /> g.setColor(getRandColor(160,200));
for (int i=0;i<155;i++)
{
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x,y,x+xl,y+yl);
}
//取随Z生的认证?4位数?
String sRand="";
for (int i=0;i<4;i++)
{
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
// 认证码昄到图象中
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//调用函数出来的颜色相同,可能是因为种子太接近Q所以只能直接生?br /> g.drawString(rand,13*i+6,16);
}
//认证码存入SESSION
request.getSession().setAttribute("rand",sRand);
//图象生效
g.dispose();
//输出图象到页?br /> ImageIO.write(image, "JPEG", response.getOutputStream());
}
//l定范围获得随机颜色
private Color getRandColor(int fc,int bc)
{
Random random = new Random();
if(fc>255) fc=255;
if(bc>255) bc=255;
int r=fc+random.nextInt(bc-fc);
int g=fc+random.nextInt(bc-fc);
int b=fc+random.nextInt(bc-fc);
return new Color(r,g,b);
}
调用:
<td height="25">
<div align="right">
<font color="#000000">验证码:</font>
</div>
</td>
<td align="left">
<input type="text" name="randCode" size=10></input>
<img style="cursor:hand" name="validatecode"
src=" servlet/RadomCodeServlet" height="17" align="middle"
onclick="document.validatecode.src=' servlet/RadomCodeServlet'">
</td>
public class MD5
{
private static MD5 md5 = null;
private MD5(){}
public static MD5 getInstance()
{
if (md5 == null)
{
md5 = new MD5();
}
return md5;
}
/**
* Description:encrypt the String by "MD5"
* @param str String
* @return String
*/
public String calcMD5(String str)
{
try
{
MessageDigest alga = MessageDigest.getInstance("MD5");
alga.update(str.getBytes());
byte[] digesta = alga.digest();
return byte2hex(digesta);
}
catch (Exception e)
{
//System.out.println(e.getMessage());
return null;
}
}
private String byte2hex(byte[] b)
{
String hs = "";
String stmp = "";
for (int n = 0; n < b.length; n++)
{
stmp = (Integer.toHexString(b[n] & 0XFF));
if (stmp.length() == 1)
{
hs = hs + "0" + stmp;
}
else
{
hs = hs + stmp;
}
if (n < b.length - 1)
{
hs = hs + "";
}
}
return hs;
}
}
import org.jasig.cas.authentication.principal.Credentials;
public class LoginInfoCredentials
implements Credentials
{
private String account;
private String password;
private String randCode;
public LoginInfoCredentials()
{
}
public String getAccount()
{
return account;
}
public void setAccount(String account)
{
this.account = account;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
public String getRandCode()
{
return randCode;
}
public void setRandCode(String randCode)
{
this.randCode = randCode;
}
}
package com.jama.credentials;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jasig.cas.authentication.principal.*;
// Referenced classes of package com.jama.credentials:
// LoginInfoCredentials
public class LoginInfoToPrincipalResolver
implements CredentialsToPrincipalResolver
{
private final Log log = LogFactory.getLog(getClass());
public LoginInfoToPrincipalResolver()
{
}
public Principal resolvePrincipal(Credentials credentials)
{
LoginInfoCredentials loginInfo = (LoginInfoCredentials)credentials;
if(log.isDebugEnabled())
{
log.debug((new StringBuilder("Creating SimplePrincipal for [")).append(loginInfo.getAccount()).append("]").toString());
}
return new SimplePrincipal(loginInfo.getAccount());
}
public boolean supports(Credentials credentials)
{
return credentials != null && com/jama/credentials/LoginInfoCredentials.isAssignableFrom(credentials.getClass());
}
}
function rtrim(str) {
var pattern = new RegExp("[\\s]+$","gi");
return str.replace(pattern,"");
}
function trim(str) {
return rtrim(ltrim(str));
}
<body onload = "detect()">
test :
<a id="list" > </a>
</BODY>
</HTML>
xmlhttp.jsp
<%@ page language="java" contentType="text/html;charset=GB2312"%>
<%@ page import ="java.util.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<%
Random randor=new Random();
out.println(randor.nextInt());
%>
</BODY>
</HTML>
} catch (JRException e) {
throw new DemoException("Report Export Failed.");
}
}
jsp调用ҎQ?br /> <%
String filePath=getServletContext().getRealPath("/")+"report.jasper";
CustomerServiceImpl custs=new CustomerServiceImpl();
byte[] bytes=null;
String begNo=request.getParameter("beginCustNo");
String endNo=request.getParameter("endCustNo");
String type=request.getParameter("type");
if(type.equals("Pdf")){
bytes= custs.generatePDF(begNo,endNo,"客户资料明细?,filePath);
}else if(type.equals("Excel")){
bytes=custs.generateExcel(begNo,endNo,"客户资料明细?,filePath);
}else
bytes=custs.generateHtml(begNo,endNo,"客户资料明细?,filePath);
if(bytes!=null){
if(type.equals("Pdf")){
response.setContentType("application/pdf");
}else if(type.equals("Excel")){
response.setContentType("application/vnd.ms-excel");
}else
response.setContentType("text/html");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes,0,bytes.length);
ouputStream.flush();
ouputStream.close();
}else
{
out.println("error");
}
%>