allen
          專注于java ee技術,包括struts,jsf,webwork,spring,hibernate,ibatis
          posts - 7,  comments - 9,  trackbacks - 0


          $_SERVER['PHP_SELF'] #當前正在執行腳本的文件名,與 document root相關。
          $_SERVER['argv'] #傳遞給該腳本的參數。
          $_SERVER['argc'] #包含傳遞給程序的命令行參數的個數(如果運行在命令行模式)。
          $_SERVER['GATEWAY_INTERFACE'] #服務器使用的 CGI 規范的版本。例如,“CGI/1.1”。
          $_SERVER['SERVER_NAME'] #當前運行腳本所在服務器主機的名稱。
          $_SERVER['SERVER_SOFTWARE'] #服務器標識的字串,在響應請求時的頭部中給出。
          $_SERVER['SERVER_PROTOCOL'] #請求頁面時通信協議的名稱和版本。例如,“HTTP/1.0”。
          $_SERVER['REQUEST_METHOD'] #訪問頁面時的請求方法。例如:“GET”、“HEAD”,“POST”,“PUT”。
          $_SERVER['QUERY_STRING'] #查詢(query)的字符串。
          $_SERVER['DOCUMENT_ROOT'] #當前運行腳本所在的文檔根目錄。在服務器配置文件中定義。
          $_SERVER['HTTP_ACCEPT'] #當前請求的 Accept: 頭部的內容。
          $_SERVER['HTTP_ACCEPT_CHARSET'] #當前請求的 Accept-Charset: 頭部的內容。例如:“iso-8859-1,*,utf-8”。
          $_SERVER['HTTP_ACCEPT_ENCODING'] #當前請求的 Accept-Encoding: 頭部的內容。例如:“gzip”。
          $_SERVER['HTTP_ACCEPT_LANGUAGE']#當前請求的 Accept-Language: 頭部的內容。例如:“en”。
          $_SERVER['HTTP_CONNECTION'] #當前請求的 Connection: 頭部的內容。例如:“Keep-Alive”。
          $_SERVER['HTTP_HOST'] #當前請求的 Host: 頭部的內容。
          $_SERVER['HTTP_REFERER'] #鏈接到當前頁面的前一頁面的 URL 地址。
          $_SERVER['HTTP_USER_AGENT'] #當前請求的 User_Agent: 頭部的內容。
          $_SERVER['HTTPS'] — 如果通過https訪問,則被設為一個非空的值(on),否則返回off
          $_SERVER['REMOTE_ADDR'] #正在瀏覽當前頁面用戶的 IP 地址。
          $_SERVER['REMOTE_HOST'] #正在瀏覽當前頁面用戶的主機名。
          $_SERVER['REMOTE_PORT'] #用戶連接到服務器時所使用的端口。
          $_SERVER['SCRIPT_FILENAME'] #當前執行腳本的絕對路徑名。
          $_SERVER['SERVER_ADMIN'] #管理員信息
          $_SERVER['SERVER_PORT'] #服務器所使用的端口
          $_SERVER['SERVER_SIGNATURE'] #包含服務器版本和虛擬主機名的字符串。
          $_SERVER['PATH_TRANSLATED'] #當前腳本所在文件系統(不是文檔根目錄)的基本路徑。
          $_SERVER['SCRIPT_NAME'] #包含當前腳本的路徑。這在頁面需要指向自己時非常有用。
          $_SERVER['REQUEST_URI'] #訪問此頁面所需的 URI。例如,“/index.html”。
          $_SERVER['PHP_AUTH_USER'] #當 PHP 運行在 Apache 模塊方式下,并且正在使用 HTTP 認證功能,這個變量便是用戶輸入的用戶名。
          $_SERVER['PHP_AUTH_PW'] #當 PHP 運行在 Apache 模塊方式下,并且正在使用 HTTP 認證功能,這個變量便是用戶輸入的密碼。
          $_SERVER['AUTH_TYPE'] #當 PHP 運行在 Apache 模塊方式下,并且正在使用 HTTP 認證功能,這個變量便是認證的類型。
          posted @ 2012-02-01 12:00 robbin163 閱讀(198) | 評論 (0)編輯 收藏


          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 {
          ??//設置頁面不緩存
          ??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);

          ??//獲取圖形上下文
          ??Graphics g = image.getGraphics();

          ??//生成隨機類
          ??Random random = new Random();

          ??//設定背景色
          ??g.setColor(getRandColor(200,250));
          ??g.fillRect(0, 0, width, height);

          ??//設定字體
          ??g.setFont(new Font("Times New Roman",Font.PLAIN,18));
          ??
          ??//隨機產生155條干擾線,使圖象中的認證碼不易被其它程序探測到
          ??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)));//調用函數出來的顏色相同,可能是因為種子太接近,所以只能直接生成
          ????? g.drawString(rand,13*i+6,16);
          ??}

          ??//將認證碼存入SESSION
          ??request.getSession().setAttribute("rand",sRand);


          ??//圖象生效
          ??g.dispose();

          ??//輸出圖象到頁面
          ??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>

          posted @ 2006-12-08 13:51 robbin163 閱讀(248) | 評論 (0)編輯 收藏
          MD5

          import java.security.*;


          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;
          ? }
          }

          posted @ 2006-12-08 13:49 robbin163 閱讀(365) | 評論 (1)編輯 收藏

          package com.jama.credentials;

          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());
          ??? }
          }

          posted @ 2006-12-08 13:48 robbin163 閱讀(278) | 評論 (0)編輯 收藏

          function ltrim(str) {
          ??????? var pattern = new RegExp("^[\\s]+","gi");
          ??????? return str.replace(pattern,"");
          }

          function rtrim(str) {
          ??????? var pattern = new RegExp("[\\s]+$","gi");
          ??????? return str.replace(pattern,"");
          }
          function trim(str) {
          ??????? return rtrim(ltrim(str));
          }

          posted @ 2006-11-18 14:35 robbin163 閱讀(516) | 評論 (0)編輯 收藏

          <2006年11月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 临清市| 宜兴市| 滨州市| 遂宁市| 潜山县| 灵山县| 上栗县| 雅江县| 海兴县| 五台县| 双牌县| 永登县| 丰都县| 和田市| 江孜县| 永昌县| 甘洛县| 昭觉县| 钟山县| 兰考县| 潮安县| 五华县| 广州市| 宜昌市| 南汇区| 葵青区| 珠海市| 靖州| 天峻县| 咸宁市| 花莲县| 资中县| 巴彦淖尔市| 嘉义市| 枣庄市| 贵港市| 巴青县| 西宁市| 敖汉旗| 凌源市| 安图县|