锘??xml version="1.0" encoding="utf-8" standalone="yes"?>$_SERVER['PHP_SELF'] #褰撳墠姝e湪鎵ц鑴氭湰鐨?span href="tag.php?name=%CE%C4%BC%FE">鏂囦歡鍚嶏紝涓?document root鐩稿叧銆?br />$_SERVER['argv'] #浼犻掔粰璇ヨ剼鏈殑鍙傛暟銆?br />$_SERVER['argc'] #鍖呭惈浼犻掔粰紼嬪簭鐨勫懡浠よ鍙傛暟鐨勪釜鏁幫紙濡傛灉榪愯鍦ㄥ懡浠よ妯″紡錛夈?br />$_SERVER['GATEWAY_INTERFACE'] #鏈嶅姟鍣ㄤ嬌鐢ㄧ殑 CGI 瑙勮寖鐨勭増鏈備緥濡傦紝“CGI/1.1”銆?br />$_SERVER['SERVER_NAME'] #褰撳墠榪愯鑴氭湰鎵鍦ㄦ湇鍔″櫒涓繪満鐨勫悕縐般?br />$_SERVER['SERVER_SOFTWARE'] #鏈嶅姟鍣ㄦ爣璇嗙殑瀛椾覆錛屽湪鍝嶅簲璇鋒眰鏃剁殑澶撮儴涓粰鍑恒?br />$_SERVER['SERVER_PROTOCOL'] #璇鋒眰欏甸潰鏃墮氫俊鍗忚鐨勫悕縐板拰鐗堟湰銆備緥濡傦紝“HTTP/1.0”銆?br />$_SERVER['REQUEST_METHOD'] #璁塊棶欏甸潰鏃剁殑璇鋒眰鏂規硶銆備緥濡傦細“GET”銆?#8220;HEAD”錛?#8220;POST”錛?#8220;PUT”銆?br />$_SERVER['QUERY_STRING'] #鏌ヨ(query)鐨?span href="tag.php?name=%D7%D6%B7%FB">瀛楃涓層?br />$_SERVER['DOCUMENT_ROOT'] #褰撳墠榪愯鑴氭湰鎵鍦ㄧ殑鏂囨。鏍圭洰褰曘傚湪鏈嶅姟鍣ㄩ厤緗枃浠朵腑瀹氫箟銆?br />$_SERVER['HTTP_ACCEPT'] #褰撳墠璇鋒眰鐨?Accept: 澶撮儴鐨勫唴瀹廣?br />$_SERVER['HTTP_ACCEPT_CHARSET'] #褰撳墠璇鋒眰鐨?Accept-Charset: 澶撮儴鐨勫唴瀹廣備緥濡傦細“iso-8859-1,*,utf-8”銆?br />$_SERVER['HTTP_ACCEPT_ENCODING'] #褰撳墠璇鋒眰鐨?Accept-Encoding: 澶撮儴鐨勫唴瀹廣備緥濡傦細“gzip”銆?br />$_SERVER['HTTP_ACCEPT_LANGUAGE']#褰撳墠璇鋒眰鐨?Accept-Language: 澶撮儴鐨勫唴瀹廣備緥濡傦細“en”銆?br />$_SERVER['HTTP_CONNECTION'] #褰撳墠璇鋒眰鐨?Connection: 澶撮儴鐨勫唴瀹廣備緥濡傦細“Keep-Alive”銆?br />$_SERVER['HTTP_HOST'] #褰撳墠璇鋒眰鐨?Host: 澶撮儴鐨勫唴瀹廣?br />$_SERVER['HTTP_REFERER'] #閾炬帴鍒板綋鍓嶉〉闈㈢殑鍓嶄竴欏甸潰鐨?URL 鍦板潃銆?br />$_SERVER['HTTP_USER_AGENT'] #褰撳墠璇鋒眰鐨?User_Agent: 澶撮儴鐨勫唴瀹廣?br />$_SERVER['HTTPS'] — 濡傛灉閫氳繃https璁塊棶,鍒欒璁句負涓涓潪絀虹殑鍊?on)錛屽惁鍒欒繑鍥瀘ff
$_SERVER['REMOTE_ADDR'] #姝e湪嫻忚褰撳墠欏甸潰鐢ㄦ埛鐨?IP 鍦板潃銆?br />$_SERVER['REMOTE_HOST'] #姝e湪嫻忚褰撳墠欏甸潰鐢ㄦ埛鐨勪富鏈哄悕銆?br />$_SERVER['REMOTE_PORT'] #鐢ㄦ埛榪炴帴鍒版湇鍔″櫒鏃舵墍浣跨敤鐨勭鍙c?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">緋葷粺錛堜笉鏄枃妗f牴鐩綍錛夌殑鍩烘湰璺緞銆?br />$_SERVER['SCRIPT_NAME'] #鍖呭惈褰撳墠鑴氭湰鐨勮礬寰勩傝繖鍦ㄩ〉闈㈤渶瑕佹寚鍚戣嚜宸辨椂闈炲父鏈夌敤銆?br />$_SERVER['REQUEST_URI'] #璁塊棶姝ら〉闈㈡墍闇鐨?URI銆備緥濡傦紝“/index.html”銆?br />$_SERVER['PHP_AUTH_USER'] #褰?PHP 榪愯鍦?Apache 妯″潡鏂瑰紡涓嬶紝騫朵笖姝e湪浣跨敤 HTTP 璁よ瘉鍔熻兘錛岃繖涓彉閲忎究鏄敤鎴瘋緭鍏ョ殑鐢ㄦ埛鍚嶃?br />$_SERVER['PHP_AUTH_PW'] #褰?PHP 榪愯鍦?Apache 妯″潡鏂瑰紡涓嬶紝騫朵笖姝e湪浣跨敤 HTTP 璁よ瘉鍔熻兘錛岃繖涓彉閲忎究鏄敤鎴瘋緭鍏ョ殑瀵嗙爜銆?br />$_SERVER['AUTH_TYPE'] #褰?PHP 榪愯鍦?Apache 妯″潡鏂瑰紡涓嬶紝騫朵笖姝e湪浣跨敤 HTTP 璁よ瘉鍔熻兘錛岃繖涓彉閲忎究鏄璇佺殑綾誨瀷銆?/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();
聽聽//鐢熸垚闅忔満綾?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鏉″共鎵扮嚎錛屼嬌鍥捐薄涓殑璁よ瘉鐮佷笉鏄撹鍏跺畠紼嬪簭鎺㈡祴鍒?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);
聽聽}
聽聽
聽聽//鍙栭殢鏈轟駭鐢熺殑璁よ瘉鐮?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)));//璋冪敤鍑芥暟鍑烘潵鐨勯鑹茬浉鍚岋紝鍙兘鏄洜涓虹瀛愬お鎺ヨ繎錛屾墍浠ュ彧鑳界洿鎺ョ敓鎴?br />聽聽聽聽聽 g.drawString(rand,13*i+6,16);
聽聽}
聽聽//灝嗚璇佺爜瀛樺叆SESSION
聽聽request.getSession().setAttribute("rand",sRand);
聽聽//鍥捐薄鐢熸晥
聽聽g.dispose();
聽聽//杈撳嚭鍥捐薄鍒伴〉闈?br />聽聽ImageIO.write(image, "JPEG", response.getOutputStream());聽聽
聽}
聽
聽//緇欏畾鑼冨洿鑾峰緱闅忔満棰滆壊
聽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璋冪敤鏂規硶錛?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");
聽}
聽
聽
聽 %>