hyljava

          #

          log4j的作用

          log4j的作用  

           

          一、什么是log4j
          Log4j 是Apache的一個開放源代碼項目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件、甚至是套接口服務器、NT的事件記錄器、UNIX Syslog守護進程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過程。最令人感興趣的就是,這些可以通過一個配置文件來靈活地進行配置,而不需要修改應用的代碼。

          二、日志簡介
          日志指在程序中插入語句以提供調試信息。使用日志能夠監視程序的執行。例如,用戶利用日志可以獲得關于應用程序故障的完整信息。用戶可以將調試語句(如 System.out.println)插入到程序中以獲得詳細的調試信息。

          三、項目中為什么要用log4j
          大家在編程時經常不可避免地要使用到一些日志操作,比如開發階段的調試信息、運行時的日志記錄及審計。調查顯示,日志代碼占代碼總量的4%。通常大家可以簡單地使用System.out.println()語句輸出日志信息,但是往往會有一些判斷,比如:
           
          if (someCondition)
          {
            System.out.println("some information.");
          }

          這些判斷造成正常的程序邏輯中混雜了大量的輸出語句。而在開發階段寫下的這些判斷僅為了調試的語句,在開發完成時需要查找并移除。部署運行后,尤其是在一些企業應用系統中,還經常需要進一步調試,這時就遇到了更大的麻煩。所以,我們需要一套完備的、靈活的、可配置的日志工具log4J就是優秀的選擇。

          四、log4j組件
          Log4j 由 logger、appender 和 layout 三個組件組成。可以通過同名的 Java 類訪問 Log4j 的這三個組件。

          Logger - 在執行應用程序時,接收日志語句生成的日志請求。它是一種重要的日志處理組件, 可以通過 log4j API 的 logger 類對其進行訪問。它的方法有:debug、info、warn、error、fatal 和 log。這些方法用于記錄消息。
          Appender - 管理日志語句的輸出結果。執行日志語句時,Logger 對象將接收來自日志語句的記錄請求。此請求是通過 logger 發送至 appender 的。然后,Appender 將輸出結果寫入到用戶選擇的目的地。對于不同的日志目的地,提供不同的 appender 類型。這些 appender 包括:用于文件的 file appender、用于數據庫的 JDBC appender 和用于 SMTP 服務器的 SMTP appender。
          Layout - 用于指定 appender 將日志語句寫入日志目的地所采用的格式。appender 可以用來格式化輸出結果的各種布局包括:簡單布局、模式布局和 HTML 布局。

          posted @ 2012-05-25 09:32 何云隆 閱讀(836) | 評論 (0)編輯 收藏

          T-SQL語句創建觸發器

          觸發器
          是一種特殊的存儲過程﹐它不能被顯式地調用﹐而是在往表中插入記錄﹑更新記錄或者刪除記錄時被自動地激活。所以觸發器可以用來實現對表實施復雜的完整性約束。

          二: SQL Server為每個觸發器都創建了兩個專用表:Inserted表和Deleted表。這兩個表。

          一: 觸發器是一種特殊的存儲過程﹐它不能被顯式地調用﹐而是在往表中插入記錄﹑更新記錄或者刪除記錄時被自動地激活。所以觸發器可以用來實現對表實施復雜的完整性約`束。

          二: SQL Server為每個觸發器都創建了兩個專用表:Inserted表和Deleted表。這兩個表由系統來維護﹐它們存在于內存中而不是在數據庫中。這兩個表的結構總是與被該觸發器作用的表的結構相同。觸發器執行 完成后﹐與該觸發器相關的這兩個表也被刪除。
          Deleted表存放由于執行Delete或Update語句而要從表中刪除的所有行。
          Inserted表存放由于執行Insert或Update語句而要向表中插入的所有行。
          三:Instead of 和 After觸發器
          SQL Server2000提供了兩種觸發器:Instead of 和After 觸發器。這兩種觸發器的差別在于他們被激活的同:

          Instead of觸發器用于替代引起觸發器執行的T-SQL語句。除表之外﹐Instead of 觸發器也可以用于視圖﹐用來擴展視圖可以支持的更新操作。

          After觸發器在一個Insert,Update或Deleted語句之后執行﹐進行約束檢查等動作都在After觸發器被激活之前發生。After觸發器只能用于表。

          一個表或視圖的每一個修改動作(insert,update和delete)都可以有一個instead of 觸發器﹐一個表的每個修改動作都可以有多個After觸發器。
          四:觸發器的執行過程
          如果一個Insert﹑update或者delete語句違反了約束﹐那幺After觸發器不會執行﹐因為對約束的檢查是在After觸發器被激動之前發生的。所以After觸發器不能超越約束。

          Instead of 觸發器可以取代激發它的操作來執行。它在Inserted表和Deleted表剛剛建立﹐其它任何操作還沒有發生時被執行。因為Instead of 觸發器在約束之前執行﹐所以它可以對約束進行一些預處理。

          五:使用T-SQL語句來創建觸發器

          基本語句如下:
          create trigger trigger_name
          on {table_name view_name}
          {for After Instead of }
          [ insert, update,delete ]
          as
          sql_statement

          六:刪除觸發器:

          基本語句如下:

          drop trigger trigger_name

          七:查看數據庫中已有觸發器:

          -- 查看數據庫已有觸發器
          use jxcSoftware
          go
          select * from sysobjects where xtype='TR'

          -- 查看單個觸發器
          exec sp_helptext '觸發器名'

          八:修改觸發器:

          基本語句如下:
          alter trigger trigger_name
          on {table_name view_name}
          {for After Instead of }
          [ insert, update,delete ]
          as
          sql_statement

          九:相關示例:
          1:在Orders表中建立觸發器﹐當向Orders表中插入一條訂單記錄時﹐檢查goods表的貨品狀態status是否為1(正在整理)﹐是﹐則不能往Orders表加入該訂單。
          create trigger orderinsert
          on orders
          after insert
          as
          if (select status from goods,inserted
          where goods.name=inserted.goodsname)=1
          begin
          print 'the goods is being processed'
          print 'the order cannot be committed'
          rollback transaction --回滾﹐避免加入
          end
          2:在Orders表建立一個插入觸發器﹐在添加一條訂單時﹐減少Goods表相應的貨品記錄中的庫存。
          create trigger orderinsert1
          on orders
          after insert
          as
          update goods set storage=storage-inserted.quantity
          from goods,inserted
          where
          goods.name=inserted.goodsname
          3:在Goods表建立刪除觸發器﹐實現Goods表和Orders表的級聯刪除。
          create trigger goodsdelete
          on goods
          after delete
          as
          delete from orders
          where goodsname in
          (select name from deleted)
          4:在Orders表建立一個更新觸發器﹐監視Orders表的訂單日期(OrderDate)列﹐使其不能手工修改.
          create trigger orderdateupdate
          on orders
          after update
          as
          if update(orderdate)
          begin
          raiserror(' orderdate cannot be modified',10,1)
          rollback transaction
          end
          5:在Orders表建立一個插入觸發器﹐保證向Orders表插入的貨品名必須要在Goods表中一定存在。
          create trigger orderinsert3
          on orders
          after insert
          as
          if (select count(*) from goods,inserted where goods.name=inserted.goodsname)=0
          begin
          print ' no entry in goods for this order'
          rollback transaction
          end

          6:Orders表建立一個插入觸發器,保證向Orders表插入的貨品信息要在Order表中添加

          alter trigger addOrder
          on Orders
          for insert
          as
          insert into Order
          select inserted.Id, inserted.goodName,inserted.Number from inserted

          posted @ 2012-05-24 08:21 何云隆 閱讀(2974) | 評論 (1)編輯 收藏

          Struts自定義標簽,驗證非法登錄















          posted @ 2012-05-23 22:23 何云隆 閱讀(203) | 評論 (0)編輯 收藏

          js 網頁中文本塊碰壁反彈特效,有控制按鈕

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
          <title>碰壁反彈</title>
          <style>
          #text {width:500px;height:300px;border:10px red solid;margin:0 auto;position:relative;}
          #div1 {width:50px;height:50px;border:5px yellow solid;position:absolute;}
          </style>
          </head>
          <body>
          <div id="text">
          <div id="div1"></div>
          </div>
          <input type="button" value="開始"/>
          <input type="button" value="變大"/>
          <input type="button" value="變小"/>
          <input type="button" value="停止"/>
          </body>
          <script type="text/javascript">
          var text = document.getElementById("text");
          var div1 = document.getElementById("div1");
          var a = div1.offsetTop;
          var b = div1.offsetLeft;
          var id = true;
          var id2 = true;
          var ss=null;
          var qw = 50;
          var ge = true;
          var gg = true;
          function pbft(){
          var width = text.clientWidth;
          var height = text.clientHeight;
          var width2 = div1.offsetWidth;
          var height2 = div1.offsetHeight;
          var width3 = width - width2;
          var height3 = height - height2;
          if(id){
          if(b<width3){
          b++;
          this.div1.style.left = b + "px";
          }else{
          id = false;
          }
          }else{
          if(b>0){
          b--;
          this.div1.style.left = b + "px";
          }else{
          id=true;
          }
          }
          if(id2){
          if(a<height3){
          a++;
          this.div1.style.top = a + "px";
          }else{
          id2 = false;
          }
          }else{
          if(a>0){
          a--;
          this.div1.style.top = a + "px";
          }else{
          id2=true;
          }
          }
          }
          function dian(){
          var da = document.getElementsByTagName("input")[1];
          var xiao = document.getElementsByTagName("input")[2];
          var stop = document.getElementsByTagName("input")[3];
          var kais = document.getElementsByTagName("input")[0];
          ade(da,'click',function(){bd()});
          ade(xiao,'click',function(){bx()});
          ade(stop,'click',function(){tz()});
          ade(kais,'click',function(){ks()});
          }
          // Resources from http://www.veryhuo.com/down
          function ade(a,b,c){
          if (a.addEventListener)
          {
          a.addEventListener(b,c,false)
          }else{
          a["on"+b] = c ;
          }
          }
          function ks(){
          if (ss)
          {
          clearInterval(ss);
          }
          ss = setInterval(pbft,10);
          }
          function bd(){
          if (qw<=200)
          {
          qw++;
          this.div1.style.width = qw + "px";
          this.div1.style.height = qw + "px";
          clearTimeout(ge);
          gg = setTimeout(bd,20)
          }
          }
          function bx(){
          if (qw>50)
          {
          qw--;
          this.div1.style.width = qw + "px";
          this.div1.style.height = qw + "px";
          clearTimeout(gg);
          ge = setTimeout(bx,20)
          }
          }
          function tz(){
          clearInterval(ss);
          clearTimeout(gg);
          clearTimeout(ge);
          }
          dian();
          </script>
          </html>
          <!-- Liehuo Button BEGIN -->
          <script type='text/javascript' src='http://www.veryhuo.com/Res/share/jscss/Liehuo_r.js?btn=r3.gif' charset=utf-8></script>
          <!-- Liehuo Button END --><br /><center>如不能顯示效果,請按Ctrl+F5刷新本頁,更多網頁代碼:<a target='_blank'>http://www.veryhuo.com/</a></center>
          文章源自:烈火網,原文:http://www.veryhuo.com/a/view/29262.html

          posted @ 2012-05-22 08:24 何云隆 閱讀(364) | 評論 (0)編輯 收藏

          JS過河游戲,警察,土匪,媽媽,爸爸,女兒和兒子

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-

          transitional.dtd">
          <html xmlns="<head>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
          <title>JavaScript過河游戲</title>
          <style type="text/css">
          #content{width:800px;height:600px;border:1px #333333 solid;overflow:hidden;}
          #A{width:120px;height:600px;float:left;background:#996633;}
          #B{width:560px;height:600px;float:left;background:#0099FF;}
          #river{width:560px;height:450px;}
          #operator{width:560px;height:150px;background:#99CCFF;overflow:hidden;}
          #C{width:120px;height:600px;float:right;background:#996633;}
          #people{width:100px;height:20px;border:2px #000000 solid;margin:10px auto;text-

          align:center;cursor:pointer;padding:10px 0px;}
          #ship{width:200px;height:20px;border:1px #CC3300

          solid;background:#663300;position:relative;top:150px;left:0px;text-align:center;padding:10px 0px;cursor:pointer;}
          #btns{width:560px;height:40px;margin-top:10px;}
          #btn{width:60px;height:20px;border:1px #000000 solid;background:#FFFFCC;text-align:center;padding:10px

          0px;cursor:pointer;float:left;margin-left:210px;display:inline;}
          #new{width:60px;height:20px;border:1px #000000 solid;background:#FFFFCC;text-align:center;padding:10px

          0px;cursor:pointer;float:left;margin-left:10px;display:inline;}
          #rule{width:560px;height:100px;margin-top:10px;font-family:宋體;font-size:12px;color:#666666;line-

          height:16px;text-align:center;}
          </style>
          <script type="text/javascript">
          var direction;  //A to C:true ; C to A:false
          var people=new Array(9);
          var s2Able;  //判斷船2是否有人
          var s1Able;  //判斷船1是否有人
          var pInShip1; //哪個人在船1上
          var pInShip2; //哪個人在船2上
          function init(){
          var peopleA=document.getElementById("A").getElementsByTagName("div");
          var ships=document.getElementsByName("ship");
          var peopleC=document.getElementById("C").getElementsByTagName("div");
          var moveBtn=document.getElementById("btn");
          var newBtn=document.getElementById("new");
          for(var i=0,len=peopleC.length;i<len;i++){
          peopleC[i].style.visibility="hidden";
          }
          s1Able=true;
          s2Able=true;
          direction=true;
          for (var i=0;i<9;i++)
          {
          people[i]=true;
          }
          //注冊事件
          var len=peopleA.length;
          for(var j=0;j<len;j++){
          (function(m){
          peopleA[m].onclick = function(){
          if(direction)
          selectPeople(this,m+1);
          };
          peopleC[m].onclick = function(){
          if(!direction)
          selectPeople(this,m+10+1);
          };
          })(j);
          }
          ships[0].onclick=function(){
          quitShip(this,pInShip1);
          s1Able=true;
          pInShip1=0;
          };
          ships[1].onclick=function(){
          quitShip(this,pInShip2);
          s2Able=true;
          pInShip2=0;
          };
          moveBtn.onclick=function(){
          move();
          };
          newBtn.onclick=function(){
          window.location = window.location;
          };
          }
          function selectPeople(obj,move_num){
          var ships=document.getElementsByName("ship");
          if(s1Able){
          ships[0].innerHTML=obj.innerHTML;
          obj.style.visibility="hidden";
          s1Able=false;
          pInShip1=move_num;
          if(move_num>10)
          people[move_num-10]=!people[move_num-10];
          else
          people[move_num]=!people[move_num];
          }
          else if(s2Able){
          ships[1].innerHTML=obj.innerHTML;
          obj.style.visibility="hidden";
          s2Able=false;
          pInShip2=move_num;
          if(move_num>10)
          people[move_num-10]=!people[move_num-10];
          else
          people[move_num]=!people[move_num];
          }
          // 烈火網 liehuo.net 歡迎復制,拒絕惡意采集 liehuo.net
          else{
          alert("船上最多兩個人,已滿!");
          }
          }
          function quitShip(obj,quitId){
          if(obj.innerHTML != ""){
          var peopleA=document.getElementById("A").getElementsByTagName("div");
          var peopleC=document.getElementById("C").getElementsByTagName("div");
          if(quitId > 10){
          peopleC[quitId-10-1].style.visibility="visible";
          people[quitId-10]=!people[quitId-10];
          }
          else{
          peopleA[quitId-1].style.visibility="visible";
          people[quitId]=!people[quitId];
          }
          obj.innerHTML="";
          }
          }
          function motherCheck(){
          if(people[1]==people[5])
          {
          if(people[4]!=people[1])
          {
          alert("媽媽打兒子1");
          return false;
          }
          }
          if(people[1]==people[6])
          {
          if(people[4]!=people[1])
          {
          alert("媽媽打兒子2");
          return false;
          }
          }
          return true;
          }
          function fatherCheck(){
          if(people[4]==people[2])
          {
          if(people[1]!=people[4])
          {
          alert("爸爸打女兒1");
          return false;
          }
          }
          if(people[4]==people[3])
          {
          if(people[1]!=people[4])
          {
          alert("爸爸打女兒2");
          return false;
          }
          }
          return true;
          }
          function policeCheck(){
          if(people[7]!=people[8])
          {
          for(var i=1;i<8;i++)
          {
          if(people[8]==people[i])
          {
          alert("犯人傷人");
          return false;
          }
          }
          }
          return true;
          }
          function atoc(peopleId){
          var peopleC=document.getElementById("C").getElementsByTagName("div");
          var ships=document.getElementsByName("ship");
          var tempId;
          if(peopleId > 10){
          tempId = peopleId - 10 -1;
          }
          else
          tempId = peopleId - 1;
          if(tempId >= 0)
          peopleC[tempId].style.visibility="visible";
          for(var i=0,len=ships.length;i<len;i++){
          ships[i].style.left = "360px";
          ships[i].innerHTML = "";
          }
          }
          function ctoa(peopleId){
          var peopleA=document.getElementById("A").getElementsByTagName("div");
          var ships=document.getElementsByName("ship");
          var tempId;
          if(peopleId > 10){
          tempId = peopleId - 10 -1;
          }
          else
          tempId = peopleId - 1;
          if(tempId >= 0)
          peopleA[tempId].style.visibility="visible";
          for(var i=0,len=ships.length;i<len;i++){
          ships[i].style.left = "0px";
          ships[i].innerHTML = "";
          }
          }
          function move(){
          if(pInShip1==1 || pInShip1==4 || pInShip1==7 ||
          pInShip1==11 || pInShip1==14 || pInShip1==17 ||
          pInShip2==1 || pInShip2==4 || pInShip2==7 ||
          pInShip2==11 || pInShip2==14 || pInShip2==17
          )  //開動船只的人只能是爸爸媽媽或者是警察
          {
          if (motherCheck()&& fatherCheck() && policeCheck())
          {
          if(direction)
          {
          atoc(pInShip1);
          atoc(pInShip2);
          direction=false;
          }
          else
          {
          ctoa(pInShip1);
          ctoa(pInShip2);
          direction=true;
          }
          s1Able=s2Able=true;
          pInShip1=pInShip2=0;
          var peopleC=document.getElementById("C").getElementsByTagName("div");
          var result = true;
          for(var i=0,len=peopleC.length;i<len;i++){
          if(peopleC[i].style.visibility=="hidden"){
          result = false;
          break;
          }
          }
          if(result){
          alert("你真厲害!");
          window.location = window.location;
          }
          }
          }
          else
          alert("只有媽媽、爸爸和警察能撐船!");
          }
          window.onload = function(){
          init();
          };
          </script>
          </head>
          <body>
          <div id="content">
          <div id="A">
          <div id="people" name="people">媽媽</div>
          <div id="people" name="people">女兒1</div>
          <div id="people" name="people">女兒2</div>
          <div id="people" name="people">爸爸</div>
          <div id="people" name="people">兒子1</div>
          <div id="people" name="people">兒子2</div>
          <div id="people" name="people">警察</div>
          <div id="people" name="people">土匪</div>
          </div>
          <div id="B">
          <div id="river">
          <div id="ship" name="ship"></div>
          <div id="ship" name="ship"></div>
          </div>
          <div id="operator">
          <div id="btns">
          <div id="btn">移動</div>
          <div id="new">重玩</div>
          </div>
          <div id="rule">
          游戲規則:<br />
          1.無論大人、小孩,每次最多只能承載兩人。2.只有爸爸、媽媽、警察可以駕船。<br />
          3.媽媽看到爸爸離開兒子打兒子。4.爸爸看到媽媽離開女兒打女兒。<br />
          5.土匪離開警察會傷害家人。6.先選擇人物,然后點擊"移動"按鈕。<br />
          7.移動過程中若出現提示,說明違反上述規則。
          </div>
          </div>
          </div>
          <div id="C">
          <div id="people" name="people">媽媽</div>
          <div id="people" name="people">女兒1</div>
          <div id="people" name="people">女兒2</div>
          <div id="people" name="people">爸爸</div>
          <div id="people" name="people">兒子1</div>
          <div id="people" name="people">兒子2</div>
          <div id="people" name="people">警察</div>
          <div id="people" name="people">土匪</div>
          </div>
          </div>
          </body>
          </html>

          posted @ 2012-05-22 08:21 何云隆 閱讀(641) | 評論 (0)編輯 收藏

          用js獲得并且檢驗驗證碼

          <html>
          <head>
          <style type="text/css">
          .code{
          background-image:url(111.jpg);
          font-family:Arial;
          font-style:italic;
          color:green;
          border:0;
          padding:2px 3px;
          letter-spacing:3px;
          font-weight:bolder;
          }
          .unchanged {
          border:0;
          }
          </style>
          <script language="javascript" type="text/javascript">
          var code ; //在全局 定義驗證碼
          function createCode(){
          code = "";
          var codeLength = 4;//驗證碼的長度
          var checkCode = document.getElementById("checkCode");
          checkCode.value = "";

          var selectChar = new Array(2,3,4,5,6,7,8,9,'A','B','C','D','E','F','G','H','J','K','L','M','N','P','Q','R','S','T','U','V','W','X','Y','Z');

          for(var i=0;i<codeLength;i++) {
             var charIndex = Math.floor(Math.random()*32);
             code +=selectChar[charIndex];
          }
          if(code.length != codeLength){
             createCode();
          }
          checkCode.value = code;
          }

          function validate () {
          var inputCode = document.getElementById("input1").value.toUpperCase();

          if(inputCode.length <=0) {
             alert("請輸入驗證碼!");
             return false;
          }
          else if(inputCode != code ){
             alert("驗證碼輸入錯誤!");
             createCode();
             return false;
          }
          else {
             alert("OK");
             return true;
          }

          }
          </script>
          </head>
          <body onload="createCode();">
          <input type="text" id="input1" />
          <input type="text" id="checkCode" class="code" style="width: 55px" /> <a href="#" onclick="createCode()">看不清楚</a><br /><br />
          <center><input id="Button1" onclick="validate();" type="button" value="確定" /></center>
          <script></script>
          </body>
          </html>

           

          posted @ 2012-05-22 08:12 何云隆 閱讀(1460) | 評論 (0)編輯 收藏

          看學歷更要看能力


             有一個博士分到一家研究所,成為學歷最高的一個人。 
             有一天他到單位后面的小池塘去釣魚,正好正副所長在他的一左一右,也在釣魚。 
             他只是微微點了點頭,這兩個本科生,有啥好聊的呢? 
             不一會兒,正所長放下釣竿,伸伸懶腰,蹭蹭蹭從水面上如飛地走到對面上廁所。 
             博士眼睛睜得都快掉下來了。水上飄?不會吧?這可是一個池塘啊。 
             正所長上完廁所回來的時候,同樣也是蹭蹭蹭地從水上飄回來了。 
             怎么回事?博士生又不好去問,自己是博士生哪! 
             過一陣,副所長也站起來,走幾步,蹭蹭蹭地飄過水面上廁所。這下子博士更是差點昏倒:不會吧,到了一個江湖高手集中的地方? 
             博士生也內急了。這個池塘兩邊有圍墻,要到對面廁所非得繞十分鐘的路,而回單位上又太遠,怎么辦? 
             博士生也不愿意去問兩位所長,憋了半天后,也起身往水里跨:我就不信本科生能過的水面,我博士生不能過。 
             只聽咚的一聲,博士生栽到了水里。 
             兩位所長將他拉了出來,問他為什么要下水,他問:“為什么你們可以走過去呢?”   
             兩所長相視一笑:“這池塘里有兩排木樁子,由于這兩天下雨漲水正好在水面下。我們都知道這木樁的位置,所以可以踩著樁子過去。你怎么不問一聲呢?”  

             這個故事告訴我們:學歷代表過去,只有學習力才能代表將來。尊重經驗的人,才能少走彎路。一個好的團隊,也應該是學習型的團隊。 

           

          個人理解和感悟:看學歷更要看能力

           

             招聘廣告上面我們經常會看到“要求本科以上學歷”,很少有企業招聘的時候是不在乎學歷的,而且在一些正規的企業里,如果沒有足夠的學歷,是不予以考慮加薪升職的。企業在人才的競爭上面出現了一種盲目攀比學歷的不良傾向,現在經常可以看到在某些企業的官方介紹上面寫“公司的本科以上學歷占有xx比例”的字眼,,似乎聘用的人才學歷越高
          越好,在職員工高學歷的越多越好。有一則消息稱研究生學歷的人比本科學歷的人平均年薪要高出2w元,從這里看出,學歷在企業招聘和考核中的重要性。


             現在越來越多的人堅持考研或者讀MBA,他們認為一旦有了高的學歷就可以“春風得意馬蹄疾,一頁看遍長安花”了。目前學歷仍然是一個隱形的、力量巨大的“殺手”,生生的把沒有一紙文憑的人拒之門外。


             有文憑不等于有水平,沒有學歷不等于沒有能力,大量的事實說明,不少才華橫溢、能力卓越的人才,他們并沒有高的學歷,有的甚至沒有大學文憑,例如愛迪生、高爾基諾貝爾 比爾蓋茨 喬布斯等,這些人雖然沒有高的學歷,但是他們取得的成就是非凡的,同樣現實中生活中也能輕易的發現,很多擁有高學歷的人在工作中能力平平、毫無建樹、庸庸碌碌的過萬了一生,管理者在選擇人才時,只能把學歷當作一種參考條件,更重要的是要看這個人的實際能力。如果企業不從實際出發,競相制定一些高學歷的規定,對學歷的要求過為嚴格,甚至唯學歷取人,很難選拔出優秀的人才,衡量人才既要有文化程度方面的要求,更總要視履行崗位職責的能力,真正使那些有學歷,有智慧又有能力的人得到重用.

           

              伯樂相馬,主要是看馬能否跑千里而不是看馬的出身。近有消息說,有些用人單位招聘人才的取向已更加務實,選才標準正在由“學歷型”向“能力型”轉變,這是一種令人欣慰的轉變。畢竟,千里馬是跑出來的,人才是干出來的。創造業績主要不是靠職前的學歷,而是靠任職后的實踐經歷和創造性努力。但愿我們公開選拔干部時,能夠更重任職的能力而不是更重職前的學歷。

           

             一個人是否真正的有才能,并不能以學歷作為衡量的唯一標準,管理者在選人、用人時,不要被學歷遮住了視野,二應該把有實際能力的員工放在最重要的位置上

          posted @ 2012-05-21 10:30 何云隆 閱讀(257) | 評論 (1)編輯 收藏

          多一句贊美

          多一句贊美

            人們相互希望得越多,想要給予對方的越多……就必定越親密。 
            幾天前,我和一位朋友在紐約搭計程車,下車時,朋友對司機說:“謝謝,搭你的車十分舒適。”這司機聽了愣了一愣,然后說:“你是混黑道的嗎?” 
            “不,司機先生,我不是在尋你開心,我很佩服你在交通混亂時還能沉住氣。” 
            “是呀!”司機說完,便駕車離開了。 
            “你為什么會這么說?”我不解地問。 
            “我想讓紐約多點人情味,”他答道,“唯有這樣,這城市才有救。” 
            “靠你一個人的力量怎能辦得到?” 
            “我只是起帶頭作用。我相信一句小小的贊美能讓那位司機整日心情愉快,如果他今天載了20位乘客,他就會對這20位乘客態度和善,而這些乘客受了司機的感染,也會對周遭的人和顏悅色。這樣算來,我的好意可間接傳達給1000多人,不錯吧?” 
            “但你怎能希望計程車司機會照你的想法做嗎?” 
            “我并沒有希望他,”朋友回答:“我知道這種作法是可遇不可求,所以我盡量多對人和氣,多贊美他人,即使一天的成功率只有30%,但仍可連帶影響到3000人之多。” 
            “我承認這套理論很中聽,但能有幾分實際效果呢?” 
          “就算沒效果我也毫無損失呀!開口稱贊那司機花不了我幾秒鐘,他也不會少收幾塊小費。如果那人無動于衷,那也無妨,明天我還可以去稱贊另一個計程車司機呀!” 
            “我看你腦袋有點天真病了。” 
            “從這就可看出你越來越冷漠了。我曾調查過郵局的員工,他們最感沮喪的除了薪水微薄外,另外就是欠缺別人對他們工作的肯定。” 
            “但他們的服務真的很差勁呀!” 
            “那是因為他們覺得沒人在意他們的服務質量。我們為何不多給他們一些鼓勵呢?” 
            我們邊走邊聊,途經一個建筑工地,有5個工人正在一旁吃午餐。我朋友停下了腳步,“這棟大樓蓋很真好,你們的工作一定很危險辛苦吧?”那群工人帶著狐疑的眼光望著我朋友。 
            “工程何時完工?”我朋友繼續問道。 
            “6月。”一個工人低應了一聲。 
            “這么出色的成績,你們一定很引以為榮。” 
            離開工地后,我對他說:“你這種人也可以列入瀕臨絕種動物了。” 
            “這些人也許會因我這一句話而更起勁地工作,這對所有的人何嘗不是一件好事呢?” 
            “但光靠你一個人有什么用呢?你不過是一個小民罷了。” 
            “我常告訴自己千萬不能泄氣,讓這個社會更有情原本就不是簡單的事,我能影響一個就一個,能兩個就兩個……” 
            “剛才走過的女子姿色平庸,你還對她微笑?”我插嘴問道。 
            “是呀!我知道,”他答道,“如果她是個老師,我想今天上她課的人一定如沐春風。”


          個人理解和感悟:不要吝惜贊美

                   對正確的行為要懂得及時鼓勵和贊美。管理者往往認為,這是員工應該做的,所以,當出現正確的行為時,也不認為是什么稀奇的,就省略了及時的鼓勵。這樣,久而久之,企業中就形成了一種消極的文化,也稱為亞文化。誰也不愿意做有益的事情了,因為做了就做了,也得不到鼓勵。所以企業要形成向上的文化,管理者就應及時發現員工的閃光點,不應吝惜鼓勵和贊美。

                   人人都希望獲得掌上和贊美,簡單的一句贊美會帶給人無比的溫馨和振奮,有名人說過“人是或在掌聲里的,要想讓下屬更賣力的工作,就要讓他得到上司的克定或某種獎勵”。

                   成功學大師耐基也說過“要想嘗試改變一個人,何不將責備用贊美來替代?即使下屬進步只有很小的一點,也應獲得我們的贊美。只有這樣,才能不斷的鼓勵別人改進自己,使自己進步”

                   贊美是合乎人性的領導法則,每個人都渴望得到別人的贊美和夸獎。美國一位哲學家說過“人類天性中都有做個重要任務的欲望。“ 這是人力與生俱來的本能欲望。人類天生有被贊美的強烈意識,適當的贊美,會使人趕到開心和快樂

                   管理者如果能經常的贊美下屬,便會聽到這樣的聲音:"我們領導很清楚贊美我的表現,我就知道他是真摯的關系我、尊重我,并且很熟悉我的工作內容。" 同時管理者也會得到意想不到的回報,下屬趕到自己的表現得到肯定和重視后,會更加努力的去工作

                   相對于物質獎勵而言,贊美是不需要付出代價和本錢的,也不用冒風險,而且極易使一個人的榮譽感和成就感得到滿足。一句恰當的贊美,可以調動員工的積極性,讓員工和管理者之間的關系更加和諧。


          贊美前應該了解的技巧

                   因人而異

                   下屬員工的素質有高低之分,年齡有長幼之別,因人而異,突出個性,有特點的贊美比一般化的贊美能收到更好的效果。老員工總希望別人不忘記他“想當年”的業績與雄風,同其交談時,可多稱贊他引為自豪的過去;對新員工不妨語氣稍為夸張地贊揚他的創造才能和開拓精神,并舉出幾點實例證明他的確能夠前程似錦;切記:一切要依據事實,切不可虛夸。

                   情真意切 
                   雖然人都喜歡聽贊美的話,但并非任何贊美都能使對方高興。能引起對方好感的只能是那些基于事實、發自內心的贊美。相反,你若無根無據、虛情假意地贊美別人,他不僅會感到莫名其妙,更會覺得你油嘴滑舌、詭詐虛偽。 真誠的贊美不但會使被贊美者產生心理上的愉悅,還可以使你經常發現別人的優點,從而使自己對人生持有樂觀、欣賞的態度。

                   詳實具體 
                   在日常生活中,人們有非常顯著成績的時侯并不多見。因此,交往中應從具體的事件入手,善于發現別人哪怕是最微小的長處,并不失時機地予以贊美。贊美用語愈詳實具體,說明你對對方愈了解,對他的長處和成績愈看重。讓對方感到你的真摯、親切和可信,你們之間的人際距離就會越來越近。如果你只是含糊其辭地贊美對方,說一些“你工作得非常出色”,不能引起對方的猜度,甚至產生不必要的誤解和信任危機。

                   合乎時宜 
                   贊美的效果在于相機行事、適可而止,真正做到“美酒飲到微醉后,好花看到半開時”。
                   當別人計劃做一件有意義的事時,開頭的贊揚能激勵他下決心做出成績,中間的贊揚有益于對方再接再厲,結尾的贊揚則可以肯定成績,指出進一步的努力方向,從而達到“贊揚一個,激勵一批”的效果。

                   雪中送炭 
                   俗話說:“患難風真情。”最需要贊美的不是那些早已功成名就的人,而是那些因被埋沒而產生自卑感或身處逆境的人。他們平時很難聽一聲贊美的話語,一旦被人當眾真誠地贊美,便有可能振作精神,大展宏圖。因此,最有實效的贊美不是“錦上添花”,而是“雪中送炭”。

          經驗分享:學會真誠的贊美

                   1、贊美前,培養觀看、欣賞下屬的心態,這是令你產生贊美意愿的唯一方法
                   2、贊美要找出值得贊美的事情
                   3、贊美要真誠
                   4、對員工的有點,一經發現,立刻贊美
                   5、記住下屬的名字
                   6、表揚越具體,效果越明顯
                   7、對下屬微小的成績也要表揚

          posted @ 2012-05-21 10:28 何云隆 閱讀(255) | 評論 (0)編輯 收藏

          js來處理用戶點選日歷,規范化用戶日期輸入

          function HS_DateAdd(interval,number,date){
           number = parseInt(number);
           if (typeof(date)=="string"){var date = new Date(date.split("-")[0],date.split("-")[1],date.split("-")[2])}
           if (typeof(date)=="object"){var date = date}
           switch(interval){
           case "y":return new Date(date.getFullYear()+number,date.getMonth(),date.getDate()); break;
           case "m":return new Date(date.getFullYear(),date.getMonth()+number,checkDate(date.getFullYear(),date.getMonth()+number,date.getDate())); break;
           case "d":return new Date(date.getFullYear(),date.getMonth(),date.getDate()+number); break;
           case "w":return new Date(date.getFullYear(),date.getMonth(),7*number+date.getDate()); break;
           }
          }
          function checkDate(year,month,date){
           var enddate = ["31","28","31","30","31","30","31","31","30","31","30","31"];
           var returnDate = "";
           if (year%4==0){enddate[1]="29"}
           if (date>enddate[month]){returnDate = enddate[month]}else{returnDate = date}
           return returnDate;
          }

          function WeekDay(date){
           var theDate;
           if (typeof(date)=="string"){theDate = new Date(date.split("-")[0],date.split("-")[1],date.split("-")[2]);}
           if (typeof(date)=="object"){theDate = date}
           return theDate.getDay();
          }
          function HS_calender(){
           var lis = "";
           var style = "";
           style +="<style type='text/css'>";
           style +=".calender { width:170px; height:auto; font-size:12px; margin-right:14px; background:url(calenderbg.gif) no-repeat right center #fff; border:1px solid #397EAE; padding:1px}";
           style +=".calender ul {list-style-type:none; margin:0; padding:0;}";
           style +=".calender .day { background-color:#EDF5FF; height:20px;}";
           style +=".calender .day li,.calender .date li{ float:left; width:14%; height:20px; line-height:20px; text-align:center}";
           style +=".calender li a { text-decoration:none; font-family:Tahoma; font-size:11px; color:#333}";
           style +=".calender li a:hover { color:#f30; text-decoration:underline}";
           style +=".calender li a.hasArticle {font-weight:bold; color:#f60 !important}";
           style +=".lastMonthDate, .nextMonthDate {color:#bbb;font-size:11px}";
           style +=".selectThisYear a, .selectThisMonth a{text-decoration:none; margin:0 2px; color:#000; font-weight:bold}";
           style +=".calender .LastMonth, .calender .NextMonth{ text-decoration:none; color:#000; font-size:18px; font-weight:bold; line-height:16px;}";
           style +=".calender .LastMonth { float:left;}";
           style +=".calender .NextMonth { float:right;}";
           style +=".calenderBody {clear:both}";
           style +=".calenderTitle {text-align:center;height:20px; line-height:20px; clear:both}";
           style +=".today { background-color:#ffffaa;border:1px solid #f60; padding:2px}";
           style +=".today a { color:#f30; }";
           style +=".calenderBottom {clear:both; border-top:1px solid #ddd; padding: 3px 0; text-align:left}";
           style +=".calenderBottom a {text-decoration:none; margin:2px !important; font-weight:bold; color:#000}";
           style +=".calenderBottom a.closeCalender{float:right}";
           style +=".closeCalenderBox {float:right; border:1px solid #000; background:#fff; font-size:9px; width:11px; height:11px; line-height:11px; text-align:center;overflow:hidden; font-weight:normal !important}";
           style +="</style>";

           var now;
           if (typeof(arguments[0])=="string"){
            selectDate = arguments[0].split("-");
            var year = selectDate[0];
            var month = parseInt(selectDate[1])-1+"";
            var date = selectDate[2];
            now = new Date(year,month,date);
           }else if (typeof(arguments[0])=="object"){
            now = arguments[0];
           }
           var lastMonthEndDate = HS_DateAdd("d","-1",now.getFullYear()+"-"+now.getMonth()+"-01").getDate();
           var lastMonthDate = WeekDay(now.getFullYear()+"-"+now.getMonth()+"-01");
           var thisMonthLastDate = HS_DateAdd("d","-1",now.getFullYear()+"-"+(parseInt(now.getMonth())+1).toString()+"-01");
           var thisMonthEndDate = thisMonthLastDate.getDate();
           var thisMonthEndDay = thisMonthLastDate.getDay();
           var todayObj = new Date();
           today = todayObj.getFullYear()+"-"+todayObj.getMonth()+"-"+todayObj.getDate();
           
           for (i=0; i<lastMonthDate; i++){  // Last Month's Date
            lis = "<li class='lastMonthDate'>"+lastMonthEndDate+"</li>" + lis;
            lastMonthEndDate--;
           }
           for (i=1; i<=thisMonthEndDate; i++){ // Current Month's Date

            if(today == now.getFullYear()+"-"+now.getMonth()+"-"+i){
             var todayString = now.getFullYear()+"-"+(parseInt(now.getMonth())+1).toString()+"-"+i;
             lis += "<li><a href=javascript:void(0) class='today' onclick='_selectThisDay(this)' title='"+now.getFullYear()+"-"+(parseInt(now.getMonth())+1)+"-"+i+"'>"+i+"</a></li>";
            }else{
             lis += "<li><a href=javascript:void(0) onclick='_selectThisDay(this)' title='"+now.getFullYear()+"-"+(parseInt(now.getMonth())+1)+"-"+i+"'>"+i+"</a></li>";
            }
            
           }
           var j=1;
           for (i=thisMonthEndDay; i<6; i++){  // Next Month's Date
            lis += "<li class='nextMonthDate'>"+j+"</li>";
            j++;
           }
           lis += style;

           var CalenderTitle = "<a href='javascript:void(0)' class='NextMonth' onclick=HS_calender(HS_DateAdd('m',1,'"+now.getFullYear()+"-"+now.getMonth()+"-"+now.getDate()+"'),this) title='Next Month'>&raquo;</a>";
           CalenderTitle += "<a href='javascript:void(0)' class='LastMonth' onclick=HS_calender(HS_DateAdd('m',-1,'"+now.getFullYear()+"-"+now.getMonth()+"-"+now.getDate()+"'),this) title='Previous Month'>&laquo;</a>";
           CalenderTitle += "<span class='selectThisYear'><a href='javascript:void(0)' onclick='CalenderselectYear(this)' title='Click here to select other year' >"+now.getFullYear()+"</a></span>年<span class='selectThisMonth'><a href='javascript:void(0)' onclick='CalenderselectMonth(this)' title='Click here to select other month'>"+(parseInt(now.getMonth())+1).toString()+"</a></span>月";

           if (arguments.length>1){
            arguments[1].parentNode.parentNode.getElementsByTagName("ul")[1].innerHTML = lis;
            arguments[1].parentNode.innerHTML = CalenderTitle;

           }else{
            var CalenderBox = style+"<div class='calender'><div class='calenderTitle'>"+CalenderTitle+"</div><div class='calenderBody'><ul class='day'><li>日</li><li>一</li><li>二</li><li>三</li><li>四</li><li>五</li><li>六</li></ul><ul class='date' id='thisMonthDate'>"+lis+"</ul></div><div class='calenderBottom'><a href='javascript:void(0)' class='closeCalender' onclick='closeCalender(this)'>×</a><span><span><a href=javascript:void(0) onclick='_selectThisDay(this)' title='"+todayString+"'>Today</a></span></span></div></div>";
            return CalenderBox;
           }
          }
          function _selectThisDay(d){
           var boxObj = d.parentNode.parentNode.parentNode.parentNode.parentNode;
            boxObj.targetObj.value = d.title;
            boxObj.parentNode.removeChild(boxObj);
          }
          function closeCalender(d){
           var boxObj = d.parentNode.parentNode.parentNode;
            boxObj.parentNode.removeChild(boxObj);
          }

          function CalenderselectYear(obj){
            var opt = "";
            var thisYear = obj.innerHTML;
            for (i=1970; i<=2020; i++){
             if (i==thisYear){
              opt += "<option value="+i+" selected>"+i+"</option>";
             }else{
              opt += "<option value="+i+">"+i+"</option>";
             }
            }
            opt = "<select onblur='selectThisYear(this)' onchange='selectThisYear(this)' style='font-size:11px'>"+opt+"</select>";
            obj.parentNode.innerHTML = opt;
          }

          function selectThisYear(obj){
           HS_calender(obj.value+"-"+obj.parentNode.parentNode.getElementsByTagName("span")[1].getElementsByTagName("a")[0].innerHTML+"-1",obj.parentNode);
          }

          function CalenderselectMonth(obj){
            var opt = "";
            var thisMonth = obj.innerHTML;
            for (i=1; i<=12; i++){
             if (i==thisMonth){
              opt += "<option value="+i+" selected>"+i+"</option>";
             }else{
              opt += "<option value="+i+">"+i+"</option>";
             }
            }
            opt = "<select onblur='selectThisMonth(this)' onchange='selectThisMonth(this)' style='font-size:11px'>"+opt+"</select>";
            obj.parentNode.innerHTML = opt;
          }
          function selectThisMonth(obj){
           HS_calender(obj.parentNode.parentNode.getElementsByTagName("span")[0].getElementsByTagName("a")[0].innerHTML+"-"+obj.value+"-1",obj.parentNode);
          }
          function HS_setDate(inputObj){
           var calenderObj = document.createElement("span");
           calenderObj.innerHTML = HS_calender(new Date());
           calenderObj.style.position = "absolute";
           calenderObj.targetObj = inputObj;
           inputObj.parentNode.insertBefore(calenderObj,inputObj.nextSibling);
          }



          在調用時,只需用光標事件引發即可,即onfocus="HS_setDate(this)"

          posted @ 2012-05-21 08:35 何云隆 閱讀(300) | 評論 (0)編輯 收藏

          js 彈出窗口

          function onclick_check2() {
             var popup_width = 400;
             var popup_height = 350;
             var popup_left = (screen.width - popup_width) / 2;
             var popup_top = (screen.height - popup_height) / 2;
             var popup_scrollbars = "no";
           
             var popup_property = "width=" + popup_width;
             var popup_property = popup_property + ",height=" + popup_height;
             var popup_property = popup_property + ",left=" + popup_left;
             var popup_property = popup_property + ",top=" + popup_top;
             var popup_property = popup_property + ",scrollbars=" + popup_scrollbars;
           
             window.open('<%=request.getContextPath()%>/commu/pop_post.jsp','zipcode',popup_property);
           } 

          posted @ 2012-05-15 16:13 何云隆 閱讀(199) | 評論 (0)編輯 收藏

          僅列出標題
          共11頁: First 上一頁 3 4 5 6 7 8 9 10 11 下一頁 
          主站蜘蛛池模板: 新源县| 铁岭市| 张家川| 北票市| 陈巴尔虎旗| 抚顺市| 松原市| 都昌县| 遵义县| 乳源| 霞浦县| 资溪县| 恩施市| 咸阳市| 泾源县| 都匀市| 普格县| 中江县| 无为县| 扎兰屯市| 奉化市| 库车县| 华容县| 北安市| 曲阳县| 武定县| 喀喇沁旗| 武胜县| 凌源市| 玉林市| 永济市| 涪陵区| 乌什县| 图片| 东台市| 盐边县| 华池县| 绥芬河市| 舞阳县| 仙桃市| 津市市|