中国哲学CTO 之“六脉神剑”

by admin on 2018年11月14日

叫业主提供技术需求,用老板任得明的言语来维系。
对商家提高之趋向为闹建议,至少是有建议权。如果你可以带这个公司应当怎么提高,你会活动至其他人的前方,那若拿走的看重就见面重复多,CEO
也会觉得您的企图大死,不仅仅只是一个技术工具。 当 CEO
想到业务的时候,技术团队已经办好准备了,这足以说凡是 CTO
的高境界。想只要到位这或多或少,首先你要对技术产生足的把握,你针对行业及业务的握住要十分精准,因为提前投入是起高风险的。

 

 

 中国哲学 1中国哲学 2

假如我失去举行网络安全的
CTO,可能就是举行不好,因为自身则了解网络安全,但是针对整的艺和钻研没有业界的片大牛那么深。

 中国哲学 3中国哲学 4

 

  1. var InterValObj; //timer变量,控制时  
  2. var count = 120; //间隔函数,1秒执行  
  3. var curCount;//当前剩余秒数  
  4. var code = “”; //验证码  
  5. var codeLength = 6;//验证码长度  
  6.   
  7. function sendMessage() {  
  8.     curCount = count;  
  9.     var jbPhone = $(“#jbPhone”).val();  
  10.     var jbPhoneTip = $(“#jbPhoneTip”).text();  
  11.     if (jbPhone != “”) {  
  12.         if(jbPhoneTip == “√ 该手机号码可以注册,输入正确” || jbPhoneTip == “√ 短信验证码已发至你的手机,请查了”){  
  13.             // 产生验证码  
  14.             for ( var i = 0; i < codeLength; i++) {  
  15.                 code += parseInt(Math.random() * 9).toString();  
  16.             }  
  17.             // 设置button效果,开始计时  
  18.             $(“#btnSendCode”).attr(“disabled”, “true”);  
  19.             $(“#btnSendCode”).val(“请在” + curCount + “秒内输入验证码”);  
  20.             InterValObj = window.setInterval(SetRemainTime, 1000); // 启动计时器,1秒执行同样不成  
  21.             // 向后台发送处理数量  
  22.             $.ajax({  
  23.                 type: “POST”, // 用POST方式传输  
  24.                 dataType: “text”, // 数据格式:JSON  
  25.                 url: “UserAction_sms.action”, // 目标地址  
  26.                 data: “jbPhone=” + jbPhone +”&code=” + code,  
  27.                 error: function (XMLHttpRequest, textStatus, errorThrown) {   
  28.                       
  29.                 },  
  30.                 success: function (data){   
  31.                     data = parseInt(data, 10);  
  32.                     if(data == 1){  
  33.                         $(“#jbPhoneTip”).html(“<font color=’#339933′>√ 短信验证码已发至公的手机,请查收</font>”);  
  34.                     }else if(data == 0){  
  35.                         $(“#jbPhoneTip”).html(“<font color=’red’>× 短信验证码发送失败,请复发送</font>”);  
  36.                     }else if(data == 2){  
  37.                         $(“#jbPhoneTip”).html(“<font color=’red’>× 该手机号码今天殡葬验证码过多</font>”);  
  38.                     }  
  39.                 }  
  40.             });  
  41.         }  
  42.     }else{  
  43.         $(“#jbPhoneTip”).html(“<font color=’red’>× 手机号码不可知为空</font>”);  
  44.     }  
  45. }  
  46.   
  47. //timer处理函数  
  48. function SetRemainTime() {  
  49.     if (curCount == 0) {                  
  50.         window.clearInterval(InterValObj);// 停止计时器  
  51.         $(“#btnSendCode”).removeAttr(“disabled”);// 启用按钮  
  52.         $(“#btnSendCode”).val(“重新发送验证码”);  
  53.         code = “”; // 清除验证码。如果无脱,过时间后,输入收到的验证码还是有效  
  54.     }else {  
  55.         curCount–;  
  56.         $(“#btnSendCode”).val(“请于” + curCount + “秒内输入验证码”);  
  57.     }  
  58. }  
  59.   
  60. $(document).ready(function() {  
  61.     $(“#SmsCheckCode”).blur(function() {  
  62.         var SmsCheckCodeVal = $(“#SmsCheckCode”).val();  
  63.         // 向后台发送处理数量  
  64.         $.ajax({  
  65.             url : “UserAction_checkCode.action”,   
  66.             data : {SmsCheckCode : SmsCheckCodeVal},   
  67.             type : “POST”,   
  68.             dataType : “text”,   
  69.             success : function(data) {  
  70.                 data = parseInt(data, 10);  
  71.                 if (data == 1) {  
  72.                     $(“#SmsCheckCodeTip”).html(“<font color=’#339933′>√ 短信验证码正确,请继续</font>”);  
  73.                 } else {  
  74.                     $(“#SmsCheckCodeTip”).html(“<font color=’red’>× 短信验证码有误,请核实后再填写</font>”);  
  75.                 }  
  76.             }  
  77.         });  
  78.     });  
  79. });  

多人数喜爱用自己擅长的技能,或者是喜的技巧,其实从公司之角度和技艺提高的角度来拘禁,适合您企业发展和当前下的技能就是足以了。

中国哲学 5

去年,丁香园 CTO 离职,引发了行业热点讨论,CTO
到底应不应该写代码?仁者见仁,智者见智,欢迎各位网友与投票调查,并登自己之见识!

1.点击获取验证码之前的体:

特性:以拙滞古朴取胜。

 中国哲学 6中国哲学 7

唯独国外技术人非这么看,他们看 CTO 不必然完全而纯技术出身的口才能够举行。

Demo下充斥链接: http://pan.baidu.com/s/1qWt1Qdm

一般来讲,公司的 CEO 或者是董事长对技术是不打听的,所以 CTO
不要指望她们清楚您。

 

中国哲学 8

[javascript] view
plain copy

汝先解决的题目是啊?那便是近年来底问题。很多 CTO
犯了一个百般特别的错,就是不过关注未来之技巧可行性,没有解决企业时的技艺需要,那是无用之。

[html] view
plain copy

兹国内的 CTO
很多还是技巧出身,这是中华风味。我当澳洲急需了零星年,认识多海外的
CTO,他们一大半之上都不是技巧出身。

[java] view
plain copy

倘错过丢匠气

五:后台action的代码:UserAction.Java(这里只是调用了我们的老三方为提供的客户端代码的殡葬短信的法子,如果是调整用另外的不够信平台,可以变成他们的殡葬短信的主意,这里只是为大家做只参考)

中国哲学 9

  1. <%@ page language=”java” import=”java.util.*” pageEncoding=”UTF-8″%>  
  2. <%@taglib prefix=”s” uri=”/struts-tags”%>  
  3. <%@page import=”cn.gov.csrc.base.action.FindAllData”%>  
  4. <%  
  5.     String path = request.getContextPath();  
  6.     String basePath = request.getScheme() + “://”  
  7.             + request.getServerName() + “:” + request.getServerPort()  
  8.             + path + “/”;  
  9. %>  
  10. <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>  
  11. <html>  
  12. <head>  
  13. <base href=”<%=basePath%>”>  
  14. <title>中国证券会证券期货违法违规举报中心-注册</title>  
  15. <meta http-equiv=”pragma” content=”no-cache”>  
  16. <meta http-equiv=”cache-control” content=”no-cache”>  
  17. <meta http-equiv=”expires” content=”0″>  
  18. <meta http-equiv=”keywords” content=”keyword1,keyword2,keyword3″>  
  19. <meta http-equiv=”description” content=”This is my page”>  
  20. <link rel=”shortcut icon” type=”image/x-icon” href=”<%=request.getContextPath()%>vicon.ico” />  
  21. <link rel=”stylesheet” type=”text/css”  
  22.     href=”<%=request.getContextPath()%>/css/main.css”>  
  23. <link  
  24.     href=”<%=request.getContextPath()%>/formValidator1/style/validator.css”  
  25.     rel=”stylesheet” type=”text/css” />  
  26. <style type=”text/css”>  
  27. button {  
  28.     background: #F0F0F0 repeat-x;  
  29.     padding-top: 3px;   
  30.     border-top : 1px solid #708090;  
  31.     border-right: 1px solid #708090;  
  32.     border-bottom: 1px solid #708090;  
  33.     border-left: 1px solid #708090;  
  34.     width: auto;  
  35.     line-height: 12pt;   
  36.     font-size : 10pt;  
  37.     cursor: hand;  
  38.     font-size: 10pt;  
  39.     border-top: 1px solid #708090;  
  40. }  
  41. </style>  
  42. <script src=”<%=request.getContextPath()%>/js/jquery-1.7.2.min.js”  
  43.     type=”text/javascript”></script>  
  44. <script src=”<%=request.getContextPath()%>/formValidator1/formValidator-4.0.1.js”  
  45.     type=”text/javascript”></script>  
  46. <script src=”<%=request.getContextPath()%>/formValidator1/formValidatorRegex.js”  
  47.     type=”text/javascript”></script>  
  48. <script src=”<%=request.getContextPath()%>/js/register.js”  
  49.     type=”text/javascript”></script>  
  50. <script src=”<%=request.getContextPath()%>/js/sms.js”  
  51.     type=”text/javascript”></script>  
  52. <script type=”text/javascript”>  
  53.     function changeCheckNum() {  
  54.         var checkNumImage_ = document.getElementById(“checkNumImage”);  
  55.         checkNumImage_.src = “${pageContext.request.contextPath}/image.jsp?timeStamp=”+ new Date().getTime();  
  56.     }  
  57. </script>  
  58. <script type=”text/javascript”>  
  59.     var msg = “${message}”;  
  60.     if (msg != “”) {  
  61.         alert(msg);  
  62.     }  
  63. </script>  
  64. </head>  
  65. <body>  
  66.     <%@include file=”/statics/top.jspf”%>  
  67.     <div class=”center_division”>  
  68.         <div class=”center_body”>  
  69.             <div class=”center_menu”>  
  70.                 <font color=”#000000″>当前岗位:</font>  
  71.                 <a href=”<%=request.getContextPath()%>/statics/reg.jsp”><font color=”#000000″>用户注册</font></a>  
  72.             </div>  
  73.         </div>  
  74.         <div class=”center_body_menu”>  
  75.             <s:form action=”RegisterAction_register” id=”form1″ name=”form1″ method=”post” namespace=”/”>  
  76.                 <table id=”tb”>  
  77.                     <tr>  
  78.                         <td colspan=”3″ align=”center” bgcolor=”#DDDFE1″>举报人基本信息</td>  
  79.                     </tr>  
  80.                     <tr>  
  81.                         <td align=”center” width=”30%”>    <img src=”images/new_reg_xing.gif”/>用户名:</td>  
  82.                         <td align=”center” width=”40%”>  
  83.                             <s:textfield name=”username” id=”username” cssStyle=”width:160px;height:24px;” onblur=”checkusername()”/>  
  84.                         </td>  
  85.                         <td align=”left” width=”30%”>  
  86.                             <span id=”usernameTip”>  
  87.                                 <s:fielderror cssStyle=”color:red;padding-left:10px;”>  
  88.                                     <s:param>username</s:param>  
  89.                                 </s:fielderror>  
  90.                             </span>  
  91.                         </td>  
  92.                     </tr>  
  93.                     <tr>  
  94.                         <td align=”center” width=”30%”><img src=”images/new_reg_xing.gif”/>登录密码:</td>  
  95.                         <td align=”center” width=”40%”>  
  96.                             <s:password name=”password” id=”password” cssStyle=”width:160px;height:24px;” onblur=”checkpassword()”/>  
  97.                         </td>  
  98.                         <td align=”left” width=”30%”>  
  99.                             <span id=”passwordTip”>  
  100.                                 <s:fielderror cssStyle=”color:red;padding-left:10px;”>  
  101.                                     <s:param>password</s:param>  
  102.                                 </s:fielderror>  
  103.                             </span>  
  104.                         </td>  
  105.                     </tr>  
  106.                     <tr>  
  107.                         <td align=”center” width=”30%”><img src=”images/new_reg_xing.gif”/>确认密码:</td>  
  108.                         <td align=”center” width=”40%”>  
  109.                             <s:password name=”passwordRepeat” id=”passwordRepeat” cssStyle=”width:160px;height:24px;” onblur=”checkpasswrodb()”/>  
  110.                         </td>  
  111.                         <td align=”left” width=”30%”>  
  112.                             <span id=”passwordRepeatTip”>  
  113.                                 <s:fielderror cssStyle=”color:red;padding-left:10px;”>  
  114.                                     <s:param>passwordRepeat</s:param>  
  115.                                 </s:fielderror>  
  116.                             </span>  
  117.                         </td>  
  118.                     </tr>  
  119.                     <tr>  
  120.                         <td align=”center” width=”30%”><img src=”images/new_reg_xing.gif”/>姓        名:</td>  
  121.                         <td align=”center” width=”40%”>  
  122.                             <s:textfield name=”nickname” id=”nickname” cssStyle=”width:160px;height:24px;” onblur=”checknickname()”/>  
  123.                         </td>  
  124.                         <td align=”left” width=”30%”>  
  125.                             <span id=”nicknameTip”>  
  126.                                 <s:fielderror cssStyle=”color:red;padding-left:10px;”>  
  127.                                     <s:param>nickname</s:param>  
  128.                                 </s:fielderror>  
  129.                             </span>  
  130.                         </td>  
  131.                     </tr>  
  132.                     <tr>  
  133.                         <td align=”center” width=”30%”>性        别:</td>  
  134.                         <td align=”center” width=”40%”>  
  135.                             <s:radio list=”#application.dataMap.get(‘10001’)” name=”jbSex” cssStyle=”height:24px;”/>  
  136.                         </td>  
  137.                         <td align=”left” width=”30%”></td>  
  138.                     </tr>  
  139.                     <tr>  
  140.                         <td align=”center” width=”30%”>联系地址:</td>  
  141.                         <td align=”center” width=”40%”>  
  142.                             <s:textfield name=”jbAddress” id=”jbAddress” cssStyle=”width:160px;height:24px;” />  
  143.                         </td>  
  144.                         <td align=”left” width=”30%”>  
  145.                             <span id=”jbAddressTip”>  
  146.                                 <s:fielderror cssStyle=”color:red;padding-left:10px;”>  
  147.                                     <s:param>jbAddress</s:param>  
  148.                                 </s:fielderror>  
  149.                             </span>  
  150.                         </td>  
  151.                     </tr>  
  152.                     <tr>  
  153.                         <td align=”center” width=”30%”><img src=”images/new_reg_xing.gif”/>联系手机:</td>  
  154.                         <td align=”center” width=”40%”>  
  155.                             <s:textfield id=”jbPhone” name=”jbPhone” cssStyle=”width:160px;height:24px;” onblur=”checkjbPhone()”/>  
  156.                         </td>  
  157.                         <td align=”left” width=”30%”>  
  158.                             <span id=”jbPhoneTip”>  
  159.                                 <s:fielderror cssStyle=”color:red;padding-left:10px;”>  
  160.                                     <s:param>jbPhone</s:param>  
  161.                                 </s:fielderror>  
  162.                             </span>  
  163.                         </td>  
  164.                     </tr>  
  165.                     <tr>  
  166.                         <td align=”center”><img src=”images/new_reg_xing.gif”/>短信验证码:</td>  
  167.                         <td align=”left” colspan=”2″ style=”padding-left: 112px;”>  
  168.                             <s:textfield id=”SmsCheckCode” name=”SmsCheckCode” cssStyle=”width:80px;height:24px;” maxLength=”6″ />  
  169.                             <span><input type=”button” id=”btnSendCode” name=”btnSendCode” value=”免费获得验证码” onclick=”sendMessage()” /></span>  
  170.                             <span id=”SmsCheckCodeTip”>  
  171.                                 <s:fielderror cssStyle=”color:red;padding-left:10px;”>  
  172.                                     <s:param>SmsCheckCodeTip</s:param>  
  173.                                 </s:fielderror>  
  174.                             </span>  
  175.                         </td>  
  176.                     </tr>  
  177.                     <tr>  
  178.                         <td align=”center” width=”30%”><img src=”images/new_reg_xing.gif”/>证件路:</td>  
  179.                         <td align=”center” width=”40%”>  
  180.                         <s:select list=”#application.dataMap.get(‘10002’)” label=””  
  181.                                 headerKey=”” headerValue=”–请选择–” value=”1″ listValue=”value” onchange=”enableCredentialsCode(this)”  
  182.                                 name=”jbCredentialsName” id=”jbCredentialsName” cssStyle=”width:160px;height:24px;”/>  
  183.                         </td>  
  184.                         <td align=”left” width=”30%”>  
  185.                             <s:fielderror cssStyle=”color:red;padding-left:10px;”>  
  186.                                 <s:param>jbCredentialsName</s:param>  
  187.                             </s:fielderror>  
  188.                         </td>  
  189.                     </tr>  
  190.                     <tr>  
  191.                         <td align=”center” width=”30%”><img src=”images/new_reg_xing.gif”/>证件号码:</td>  
  192.                         <td align=”center” width=”40%”>  
  193.                             <s:textfield name=”jbCredentialsCode” id=”jbCredentialsCode” cssStyle=”width:160px;height:24px;” onblur=”checkjbCredentialsCode()”/>  
  194.                         </td>  
  195.                         <td align=”left” width=”30%”>  
  196.                             <span id=”jbCredentialsCodeTip”>  
  197.                                 <s:fielderror cssStyle=”color:red;padding-left:10px;”>  
  198.                                     <s:param>jbCredentialsCode</s:param>  
  199.                                 </s:fielderror>  
  200.                             </span>  
  201.                         </td>  
  202.                     </tr>  
  203.                     <tr>  
  204.                         <td align=”center” width=”30%”>单位名称:</td>  
  205.                         <td align=”center” width=”40%”>  
  206.                             <s:textfield name=”jbCompanyName” id=”jbCompanyName” cssStyle=”width:160px;height:24px;” />  
  207.                         </td>  
  208.                         <td align=”left” width=”30%”>  
  209.                             <span id=”jbCompanyNameTip”>  
  210.                                 <s:fielderror cssStyle=”color:red;padding-left:10px;”>  
  211.                                     <s:param>jbCompanyName</s:param>  
  212.                                 </s:fielderror>  
  213.                             </span>  
  214.                         </td>  
  215.                     </tr>  
  216.                     <tr>  
  217.                         <td align=”center” width=”30%”><img src=”images/new_reg_xing.gif”/>所在地段:</td>  
  218.                         <td align=”center” width=”40%”>  
  219.                         <s:select list=”#application.dataMap.get(‘10003’)” label=””  
  220.                                 headerKey=”” headerValue=”–请选择–” listKey=”key”  
  221.                                 cssStyle=”width:160px;height:24px;” listValue=”value” id=”jbSourceArea”  
  222.                                 name=”jbSourceArea” onblur=”checkjbSourceArea()”/>  
  223.                         </td>  
  224.                         <td align=”left” width=”30%”>  
  225.                             <span id=”jbSourceAreaTip”>  
  226.                                 <s:fielderror cssStyle=”color:red;padding-left:10px;”>  
  227.                                     <s:param>jbSourceArea</s:param>  
  228.                                 </s:fielderror>  
  229.                             </span>  
  230.                         </td>  
  231.                     </tr>  
  232.                     <tr>  
  233.                         <td align=”center” width=”30%”>    <img src=”images/new_reg_xing.gif”/>验证码:</td>  
  234.                         <td align=”center” width=”40%”>  
  235.                             <s:textfield id=”checkNum” name=”checkNum” cssStyle=”width:60px;height:24px;” onblur=”checkNumber()” maxLength=”4″/>  
  236.                             <img id=”checkNumImage” src=”${pageContext.request.contextPath}/image.jsp”>  
  237.                             <a onClick=”changeCheckNum()” title=”点击换一摆设” style=”cursor:hand;”> 换一摆</a>  
  238.                         </td>  
  239.                         <td align=”left” width=”30%”>  
  240.                             <span id=”checkNumTip”>  
  241.                                 <s:fielderror cssStyle=”color:red;padding-left:10px;”>  
  242.                                     <s:param>checkNumTip</s:param>  
  243.                                 </s:fielderror>  
  244.                             </span>  
  245.                         </td>  
  246.                     </tr>  
  247.                     <tr>  
  248.                         <td colspan=”3″ style=”vertical-align: top; padding-top: 5px;padding-bottom: 5px;”>  
  249.                             <input type=”submit” value=”注册” style=”width:50px; height:24px;”/>  
  250.                                 
  251.                             <input type=”reset” value=”重置” style=”width:50px; height:24px;”/>  
  252.                         </td>  
  253.                     </tr>  
  254.                 </table>  
  255.             </s:form>  
  256.         </div>  
  257.     </div>  
  258.     <%@include file=”/common/buttom.jspf”%>  
  259. </body>  
  260. </html>  

特征:剑路雄劲,颇有石破天惊,风雨大到的势。

 

自从运营层面来说,就是技巧对事情的支撑,对系统的支持,与营业的一头。与市场之一头体现在吃市场发到公的艺盈利水平是科学的,公司是起前景的,可以拉更多的食指参加公司。

  1. //去丢前后空格  
  2. function trim(str) {  
  3.     var strnew = str.replace(/^\s*|\s*$/g, “”);  
  4.     return strnew;  
  5. }  
  6. //用户名  
  7. function checkusername() {  
  8.     var username = document.form1.username.value;  
  9.     if (username == “” || !isNaN(username.charAt(0))) {  
  10.         document.getElementById(“usernameTip”).innerHTML = “<font color=’red’>× 首字母不可知也数字或者用户称不克啊空</font>”;  
  11.         return false;  
  12.     } else if (username.length < 6 || username.length > 30) {  
  13.         document.getElementById(“usernameTip”).innerHTML = “<font color=’red’>× 用户称长度也6-30各项字符</font>”;  
  14.         return false;  
  15.     } else {  
  16.         document.getElementById(“usernameTip”).innerHTML = “<font color=’#339933′>√ 用户名合格</font>”;  
  17.         // 向后台发送处理多少  
  18.         $.ajax({  
  19.             url : “UserAction_checkUserName.action”,// 目标地址  
  20.             data : {username : username}, // 目标参数  
  21.             type : “POST”, // 用POST方式传输  
  22.             dataType : “text”, // 数据格式:text  
  23.             success : function(data) {  
  24.                 data = parseInt(data, 10);  
  25.                 if (data != 0) {  
  26.                     $(“#usernameTip”).html(“<font color=’red’>× 该用户称都为登记,请复输入</font>”);  
  27.                 } else {  
  28.                     $(“#usernameTip”).html(“<font color=’#339933′>√ 该用户称好挂号,输入正确</font>”);  
  29.                 }  
  30.             }  
  31.         });  
  32.         return true;  
  33.     }  
  34. }  
  35. // 登录密码  
  36. function checkpassword() {  
  37.     var password = document.form1.password.value;  
  38.     if (password.length < 6 || password.length > 30) {  
  39.         document.getElementById(“passwordTip”).innerHTML = “<font color=’red’>× 密码长度不克小于6个,大于30个</font>”;  
  40.         return false;  
  41.     } else if (!isNaN(password)) {  
  42.         document.getElementById(“passwordTip”).innerHTML = “<font color=’red’>× 密码无能够全是数字</font>”;  
  43.         return false;  
  44.     } else {  
  45.         document.getElementById(“passwordTip”).innerHTML = “<font color=’#339933′>√ 密码合格</font>”;  
  46.         return true;  
  47.     }  
  48. }  
  49. // 确认密码  
  50. function checkpasswrodb() {  
  51.     var password = document.form1.password.value;  
  52.     var passwordRepeat = document.form1.passwordRepeat.value;  
  53.     if (trim(password) != trim(passwordRepeat)) {  
  54.         document.getElementById(“passwordRepeatTip”).innerHTML = “<font color=’red’>× 两次于密码输入必须一律</font>”;  
  55.         return false;  
  56.     } else {  
  57.         document.getElementById(“passwordRepeatTip”).innerHTML = “<font color=’#339933′>√ 密码输入一致</font>”;  
  58.         return true;  
  59.     }  
  60. }  
  61. // 姓名  
  62. function checknickname() {  
  63.     var nickname = document.form1.nickname.value;  
  64.     if (trim(nickname) == “”) {  
  65.         document.getElementById(“nicknameTip”).innerHTML = “<font color=’red’>× 姓名不能够啊空</font>”;  
  66.         return false;  
  67.     } else {  
  68.         document.getElementById(“nicknameTip”).innerHTML = “<font color=’#339933′>√ 姓名输入是</font>”;  
  69.         return true;  
  70.     }  
  71. }  
  72. // 联系手机(ajax验证手机号码是否就有)  
  73. function checkjbPhone() {  
  74.     var jbPhone = document.form1.jbPhone.value;  
  75.     var re= /(^1[3|5|8][0-9]{9}$)/;  
  76.     if (trim(jbPhone) == “”) {  
  77.         document.getElementById(“jbPhoneTip”).innerHTML = “<font color=’red’>× 手机号码不可知啊空</font>”;  
  78.         return false;  
  79.     } else if(trim(jbPhone) != “”){  
  80.         if(!re.test(jbPhone)){  
  81.             document.getElementById(“jbPhoneTip”).innerHTML = “<font color=’red’>× 请输入有效之手机号码</font>”;  
  82.             return false;  
  83.         }else{  
  84.             document.getElementById(“jbPhoneTip”).innerHTML = “<font color=’#339933′>√ 手机号码输入是</font>”;  
  85.             // 向后台发送处理多少  
  86.             $.ajax({  
  87.                 url : “UserAction_checkPhone.action”,// 目标地点  
  88.                 data : {jbPhone : jbPhone}, // 目标参数  
  89.                 type : “POST”, // 用POST方式传输  
  90.                 dataType : “text”, // 数据格式:text  
  91.                 success : function(data) {  
  92.                     data = parseInt(data, 10);  
  93.                     if (data != 0) {  
  94.                         $(“#jbPhoneTip”).html(“<font color=’red’>× 该手机号码已经给登记,请复输入</font>”);  
  95.                     } else {  
  96.                         $(“#jbPhoneTip”).html(“<font color=’#339933′>√ 该手机号码可以注册,输入正确</font>”);  
  97.                     }  
  98.                 }  
  99.             });  
  100.             return true;  
  101.         }  
  102.     }  
  103.       
  104. }  
  105. // 证件号码  
  106. function checkjbCredentialsCode() {  
  107.     var jbCredentialsCode = document.form1.jbCredentialsCode.value;  
  108.     var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;   
  109.     if (trim(jbCredentialsCode) == “”) {  
  110.         document.getElementById(“jbCredentialsCodeTip”).innerHTML = “<font color=’red’>× 证件号码不能够为空</font>”;  
  111.         return false;  
  112.     } else if(trim(jbCredentialsCode) != “”){  
  113.         if(!reg.test(jbCredentialsCode)){  
  114.             document.getElementById(“jbCredentialsCodeTip”).innerHTML = “<font color=’red’>× 请输入合法的证件号</font>”;  
  115.             return false;  
  116.         }else{  
  117.             document.getElementById(“jbCredentialsCodeTip”).innerHTML = “<font color=’#339933′>√ 证件号码输入正确</font>”;  
  118.             // 向后台发送处理数据  
  119.             $.ajax({  
  120.                 url : “UserAction_checkCredentialsCode.action”,// 目标地址  
  121.                 data : {jbCredentialsCode : jbCredentialsCode}, // 目标参数  
  122.                 type : “POST”, // 用POST方式传输  
  123.                 dataType : “text”, // 数据格式:text  
  124.                 success : function(data) {  
  125.                     data = parseInt(data, 10);  
  126.                     if (data != 0) {  
  127.                         $(“#jbCredentialsCodeTip”).html(“<font color=’red’>× 该证件号码已经被登记,请复输入</font>”);  
  128.                     } else {  
  129.                         $(“#jbCredentialsCodeTip”).html(“<font color=’#339933′>√ 该证件号码可以登记,输入是</font>”);  
  130.                     }  
  131.                 }  
  132.             });  
  133.             return true;  
  134.         }  
  135.     }  
  136. }  
  137. // 所在地方  
  138. function checkjbSourceArea() {  
  139.     var jbSourceArea = document.form1.jbSourceArea.value;  
  140.     if (trim(jbSourceArea) == “”) {  
  141.         document.getElementById(“jbSourceAreaTip”).innerHTML = “<font color=’red’>× 请捎所在处</font>”;  
  142.         return false;  
  143.     } else {  
  144.         document.getElementById(“jbSourceAreaTip”).innerHTML = “<font color=’#339933′>√ 所在地区选择对</font>”;  
  145.         return true;  
  146.     }  
  147. }  
  148. // 验证码  
  149. function checkNumber() {  
  150.     var checkNum = document.form1.checkNum.value;  
  151.     if (trim(checkNum) == “”) {  
  152.         document.getElementById(“checkNumTip”).innerHTML = “<font color=’red’>× 验证码不克啊空</font>”;  
  153.         return false;  
  154.     } else {  
  155.         document.getElementById(“checkNumTip”).innerHTML = “<font color=’#339933′>√ 验证码合格</font>”;  
  156.         // 向后台发送处理数据  
  157.         $.ajax({  
  158.             url : “UserAction_checkNum.action”,// 目标地点  
  159.             data : {checkNum : checkNum}, // 目标参数  
  160.             type : “POST”, // 用POST方式传输  
  161.             dataType : “text”, // 数据格式:text  
  162.             success : function(data) {  
  163.                 data = parseInt(data, 10);  
  164.                 if (data != 0) {  
  165.                     $(“#checkNumTip”).html(“<font color=’red’>× 验证码错误</font>”);  
  166.                 } else {  
  167.                     $(“#checkNumTip”).html(“<font color=’#339933′>√ 验证码对</font>”);  
  168.                 }  
  169.             }  
  170.         });  
  171.         return true;  
  172.     }  
  173. }  

即便如我之角色转换了,虽然偶尔自己力所能及知道技术,但是每个人都出温馨的下压力。各自的压力不均等,造成没工夫、没有生命力去了解,这是格外健康的。

老三:前台获取短信验证码的js:sms.js

意在有一些是显性的,例如老板告诉你,你要支援我解决什么问题,但是他报告你的问题不肯定是确实的题材。

[javascript] view
plain copy

而如想明白在此蜜月期快结束的早晚,要交出一个什么的成绩单,来如你所于柜之老板娘以及高管团队来支撑公向前移动,这是殊重大之。

老二:前台的报页面的代码:reg.jsp

一旦说 CTO
能够一气呵成吗运营、市场、销售、开发等解决问题,那支团队就是大概多矣。

季:验证码用户名和手机号码的js:register.js

实在这种 CTO
在某种意义上来讲相对好做,他即使是以此公司的技艺大牛。因为他供的是一个技能支持,对
CTO 的技术基础要求于高。

3.而手机号已经为登记的体裁:

不过时空在变更,原来洋洋深的技能,现在连无赛深了,变成一个大宽泛的技艺,你尽管从未有过必要去干了,而且若自己失去干的基金非常高。

 中国哲学 10中国哲学 11

十几年前,我记忆当时店招 CTO
的当儿,基本是匪体贴外的业务能力,只关心他的技能、管理了小人之集体、做了怎样的型等。

中国哲学 12

中国哲学 13

 

少冲剑:CTO 带领团队而因势而论

中国哲学 14

咱们打出技术的口发上欣赏比较技巧,我而较你牛,这个实际是一律种自然的好胜心,我觉着就是一个技术人员非常好之人,但是若作为一个
CTO 以后,就设起公司之圆运营来拘禁之题材。

中国哲学 15

及时就是需 CTO
去下手明白老板的要求,去了解他时的场景、公司的景象、客户的渴求、碰到的不方便等。

  1. package cn.gov.csrc.base.systemmanager.action;  
  2.   
  3. import java.io.IOException;  
  4. import java.io.PrintWriter;  
  5. import java.util.List;  
  6.   
  7. import javax.annotation.Resource;  
  8. import javax.servlet.http.HttpServletResponse;  
  9.   
  10. import org.apache.log4j.Logger;  
  11. import org.apache.struts2.convention.annotation.Action;  
  12. import org.apache.struts2.convention.annotation.Result;  
  13. import org.apache.struts2.convention.annotation.Results;  
  14. import org.springframework.context.annotation.Scope;  
  15. import org.springframework.security.authentication.encoding.MessageDigestPasswordEncoder;  
  16. import org.springframework.security.core.context.SecurityContextHolder;  
  17. import org.springframework.stereotype.Controller;  
  18.   
  19. import cn.gov.csrc.base.action.BaseAction;  
  20. import cn.gov.csrc.base.log.service.LogService;  
  21. import cn.gov.csrc.base.report.util.CommonUtil;  
  22. import cn.gov.csrc.base.report.util.Env;  
  23. import cn.gov.csrc.base.systemmanager.model.Count;  
  24. import cn.gov.csrc.base.systemmanager.model.User;  
  25. import cn.gov.csrc.base.systemmanager.service.CountService;  
  26. import cn.gov.csrc.base.systemmanager.service.UserService;  
  27. import cn.gov.csrc.base.util.WebContextUtil;  
  28.   
  29. import com.sms.webservice.client.SmsReturnObj;  
  30. import com.sms.webservice.client.SmsWebClient;  
  31. /** 
  32.  * File: UserAction.java  
  33.  * Author: jiangsai  
  34.  * Version: 1.1  
  35.  * Date: 04/17/2013  
  36.  * Modify: 
  37.  * Description:用户  
  38.  * Copyright csrc 
  39.  */  
  40. @Controller()  
  41. @Scope(“prototype”)  
  42. @Results({  
  43.         @Result(name = “success”, location = “/statics/report.jsp”),  
  44.         @Result(name = “modifyPassword”, location = “/statics/modifyPassword.jsp”)  
  45.         })  
  46. public class UserAction extends BaseAction<User> {  
  47.       
  48.     private static final long serialVersionUID = 1214696686677691191L;  
  49.     private static Logger log = Logger.getLogger(UserAction.class);  
  50.     private static final String url = Env.getInstance().getProperty(“url”);  
  51.     private static final String userName = Env.getInstance().getProperty(  
  52.             “username”);  
  53.     private static final String passWord = Env.getInstance().getProperty(  
  54.             “password”);  
  55.   
  56.     private Integer id;  
  57.   
  58.     private String username;// 用户名  
  59.   
  60.     private String password;// 密码  
  61.   
  62.     private String passwordRepeat;// 确认密码  
  63.       
  64.     private String jbPhone;//手机号码  
  65.       
  66.     private String jbCredentialsCode;//身份证号码  
  67.       
  68.     private String checkNum;//图片验证码  
  69.   
  70.     private String newPassword;  
  71.   
  72.     private String confirmPassword;  
  73.   
  74.     private Integer[] ownRoleIds;  
  75.   
  76.     private UserService userService;  
  77.       
  78.     private CountService countService;  
  79.       
  80.     private LogService logService;  
  81.       
  82.     private Count count = new Count();  
  83.   
  84.     public Integer getId() {  
  85.         return id;  
  86.     }  
  87.   
  88.     public void setId(Integer id) {  
  89.         this.id = id;  
  90.     }  
  91.   
  92.     public String getUsername() {  
  93.         return username;  
  94.     }  
  95.   
  96.     public void setUsername(String username) {  
  97.         this.username = username;  
  98.     }  
  99.   
  100.     public String getPassword() {  
  101.         return password;  
  102.     }  
  103.   
  104.     public void setPassword(String password) {  
  105.         this.password = password;  
  106.     }  
  107.   
  108.     public String getPasswordRepeat() {  
  109.         return passwordRepeat;  
  110.     }  
  111.   
  112.     public void setPasswordRepeat(String passwordRepeat) {  
  113.         this.passwordRepeat = passwordRepeat;  
  114.     }  
  115.       
  116.     public String getJbPhone() {  
  117.         return jbPhone;  
  118.     }  
  119.   
  120.     public void setJbPhone(String jbPhone) {  
  121.         this.jbPhone = jbPhone;  
  122.     }  
  123.       
  124.     public String getJbCredentialsCode() {  
  125.         return jbCredentialsCode;  
  126.     }  
  127.   
  128.     public void setJbCredentialsCode(String jbCredentialsCode) {  
  129.         this.jbCredentialsCode = jbCredentialsCode;  
  130.     }  
  131.   
  132.     public String getCheckNum() {  
  133.         return checkNum;  
  134.     }  
  135.   
  136.     public void setCheckNum(String checkNum) {  
  137.         this.checkNum = checkNum;  
  138.     }  
  139.   
  140.     public Integer[] getOwnRoleIds() {  
  141.         return ownRoleIds;  
  142.     }  
  143.   
  144.     public void setOwnRoleIds(Integer[] ownRoleIds) {  
  145.         this.ownRoleIds = ownRoleIds;  
  146.     }  
  147.   
  148.     public String getNewPassword() {  
  149.         return newPassword;  
  150.     }  
  151.   
  152.     public void setNewPassword(String newPassword) {  
  153.         this.newPassword = newPassword;  
  154.     }  
  155.   
  156.     public String getConfirmPassword() {  
  157.         return confirmPassword;  
  158.     }  
  159.   
  160.     public void setConfirmPassword(String confirmPassword) {  
  161.         this.confirmPassword = confirmPassword;  
  162.     }  
  163.   
  164.     @Resource  
  165.     public void setUserService(UserService userService) {  
  166.         this.userService = userService;  
  167.     }  
  168.   
  169.     public UserService getUserService() {  
  170.         return userService;  
  171.     }  
  172.   
  173.     @Resource  
  174.     public void setCountService(CountService countService) {  
  175.         this.countService = countService;  
  176.     }  
  177.   
  178.     public CountService getCountService() {  
  179.         return countService;  
  180.     }  
  181.       
  182.     public LogService getLogService() {  
  183.         return logService;  
  184.     }  
  185.   
  186.     @Resource  
  187.     public void setLogService(LogService logService) {  
  188.         this.logService = logService;  
  189.     }  
  190.   
  191.     public Count getCount() {  
  192.         return count;  
  193.     }  
  194.   
  195.     public void setCount(Count count) {  
  196.         this.count = count;  
  197.     }  
  198.   
  199.     public void prepareToUpdatePage() {  
  200.         model = userService.getEntity(id);  
  201.     }  
  202.       
  203.     /** 
  204.      * 用户登录 
  205.      *  
  206.      * @return success 
  207.      */  
  208.     @Action(value = “UserAction_login”)  
  209.     public String login() {  
  210.         Object u = SecurityContextHolder.getContext().getAuthentication().getPrincipal();  
  211.         if (u instanceof User && u != null) {  
  212.             WebContextUtil.getSession().setAttribute(“user”, u);  
  213.             User user = (User)u;  
  214.             //使用数据库表TBL_BASE_LOG添加用户登录的日志信息  
  215.             logService.saveTblBaseLog(WebContextUtil.getRequest(),”当前操作人【”+user.getNickname()+”】登录体系”);  
  216.         } else {  
  217.             // 防止绕了登陆页面一直执行Action  
  218.             return “login”;  
  219.         }  
  220.         return SUCCESS;  
  221.     }  
  222.       
  223.     /** 
  224.      * 用户密码更新 
  225.      */  
  226.     @Action(value = “UserAction_updateUser”)  
  227.     public String updateUser() {  
  228.         if (!newPassword.equals(confirmPassword)) {  
  229.             this.setMessage(“新密码以及认同密码无均等!”);  
  230.             return “modifyPassword”;  
  231.         }  
  232.         User u = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();  
  233.         MessageDigestPasswordEncoder encoder = new MessageDigestPasswordEncoder(“md5”);  
  234.         String psw = encoder.encodePassword(newPassword, null);  
  235.         userService.modifyPassword(u, psw);  
  236.         this.setMessage(“保存成功!”);  
  237.         return “modifyPassword”;  
  238.     }  
  239.       
  240.     /** 
  241.      * 验证用户称是否存在 
  242.      *  
  243.      * @throws Exception 
  244.      */  
  245.     @Action(value = “UserAction_checkUserName”)  
  246.     public void checkUserName(){  
  247.         String result = “0”;  
  248.         try {  
  249.             List<User> list = userService.findUserByUserName(username);  
  250.             if(list != null && list.size() > 0){  
  251.                 result = “1”;  
  252.             }else{  
  253.                 result = “0”;  
  254.             }  
  255.             HttpServletResponse response = WebContextUtil.getResponse();  
  256.             response.setContentType(“application/json;charset=UTF-8”);  
  257.             response.setHeader(“Cache-Control”, “no-cache”);  
  258.             PrintWriter out = response.getWriter();  
  259.             out.write(result.toString());  
  260.         } catch (IOException e) {  
  261.             throw new RuntimeException(“验证身份证号码出错”, e);  
  262.         }  
  263.     }  
  264.   
  265.     /** 
  266.      * 验证原始密码是否对 
  267.      *  
  268.      * @throws Exception 
  269.      */  
  270.     @Action(value = “UserAction_checkPassWord”)  
  271.     public void checkPassWord() throws Exception {  
  272.         String result = “0”;  
  273.         MessageDigestPasswordEncoder encoder = new MessageDigestPasswordEncoder(“md5”);  
  274.         String pwd = encoder.encodePassword(password, null);  
  275.         List<User> user = userService.findUserByPassWord(pwd);  
  276.         if (user != null && user.size() > 0) {  
  277.             result = “1”;  
  278.         }else{  
  279.             result = “0”;  
  280.         }  
  281.         HttpServletResponse response = WebContextUtil.getResponse();  
  282.         response.setContentType(“application/json;charset=UTF-8”);  
  283.         response.setHeader(“Cache-Control”, “no-cache”);  
  284.         PrintWriter out = response.getWriter();  
  285.         out.write(result.toString());  
  286.     }  
  287.       
  288.     /** 
  289.      * 验证手机号码是否存在 
  290.      */  
  291.     @Action(value = “UserAction_checkPhone”)  
  292.     public void checkPhone(){  
  293.         String result = “0”;  
  294.         try {  
  295.             List<User> list = userService.findUserByPhone(jbPhone);  
  296.             if(list != null && list.size() > 0){  
  297.                 result = “1”;  
  298.             }else{  
  299.                 result = “0”;  
  300.             }  
  301.             HttpServletResponse response = WebContextUtil.getResponse();  
  302.             response.setContentType(“application/json;charset=UTF-8”);  
  303.             response.setHeader(“Cache-Control”, “no-cache”);  
  304.             PrintWriter out = response.getWriter();  
  305.             out.write(result.toString());  
  306.         } catch (IOException e) {  
  307.             throw new RuntimeException(“验证手机号码出错”, e);  
  308.         }  
  309.     }  
  310.       
  311.     /** 
  312.      * 验证身份证号码是否存在 
  313.      */  
  314.     @Action(value = “UserAction_checkCredentialsCode”)  
  315.     public void checkCredentialsCode(){  
  316.         String result = “0”;  
  317.         try {  
  318.             List<User> list = userService.findUserByCredentialsCode(jbCredentialsCode);  
  319.             if(list != null && list.size() > 0){  
  320.                 result = “1”;  
  321.             }else{  
  322.                 result = “0”;  
  323.             }  
  324.             HttpServletResponse response = WebContextUtil.getResponse();  
  325.             response.setContentType(“application/json;charset=UTF-8”);  
  326.             response.setHeader(“Cache-Control”, “no-cache”);  
  327.             PrintWriter out = response.getWriter();  
  328.             out.write(result.toString());  
  329.         } catch (IOException e) {  
  330.             throw new RuntimeException(“验证身份证号码出错”, e);  
  331.         }  
  332.     }  
  333.       
  334.     /** 
  335.      * 验证验证码是否科学 
  336.      */  
  337.     @Action(value = “UserAction_checkNum”)  
  338.     public void checkNum(){  
  339.         try {  
  340.             String result = “0”;  
  341.             String check_number_key = (String)WebContextUtil.getSession().getAttribute(“CHECK_NUMBER_KEY”);  
  342.             if(checkNum != check_number_key && !checkNum.equals(check_number_key)){  
  343.                 result = “1”;  
  344.             }else{  
  345.                 result = “0”;  
  346.             }  
  347.             HttpServletResponse response = WebContextUtil.getResponse();  
  348.             response.setContentType(“application/json;charset=UTF-8”);  
  349.             response.setHeader(“Cache-Control”, “no-cache”);  
  350.             PrintWriter out = response.getWriter();  
  351.             out.write(result.toString());  
  352.         } catch (IOException e) {  
  353.             throw new RuntimeException(“验证验证码出错”, e);  
  354.         }  
  355.     }  
  356.       
  357.     /** 
  358.      * 验证短信验证码是否对 
  359.      *  
  360.      * @throws Exception 
  361.      */  
  362.     @Action(value = “UserAction_checkCode”)  
  363.     public void checkCode() throws Exception{  
  364.         String result = “0”;  
  365.         /** 获取手动输入的手机短信验证码 */  
  366.         String SmsCheckCode = WebContextUtil.getRequest().getParameter(“SmsCheckCode”);  
  367.         /** 获取session中存放的手机短信验证码 */  
  368.         String code = (String) WebContextUtil.getSession().getAttribute(“code”);  
  369.         try {  
  370.             if(SmsCheckCode != code && !SmsCheckCode.equals(code)){  
  371.                 result = “0”;  
  372.             }else{  
  373.                 result = “1”;  
  374.             }  
  375.         } catch (Exception e) {  
  376.             throw new RuntimeException(“短信验证失败”, e);  
  377.         }  
  378.         HttpServletResponse response = WebContextUtil.getResponse();  
  379.         response.setContentType(“application/json;charset=UTF-8”);  
  380.         response.setHeader(“Cache-Control”, “no-cache”);  
  381.         PrintWriter out = response.getWriter();  
  382.         out.write(result.toString());  
  383.     }  
  384.       
  385.     /** 
  386.      * 验证手机短信是否发送成功 
  387.      *  
  388.      * @throws Exception 
  389.      */  
  390.     @Action(value = “UserAction_sms”)  
  391.     public void sms() throws Exception {  
  392.         String result = “0”;  
  393.         /** 手机号码 */  
  394.         String jbPhone = WebContextUtil.getRequest().getParameter(“jbPhone”);  
  395.         /** 短信验证码 */  
  396.         String code = WebContextUtil.getRequest().getParameter(“code”);  
  397.         /** 短信验证码存入session(session的默认失效时30分钟) */  
  398.         WebContextUtil.getSession().setAttribute(“code”, code);  
  399.         /** 如何初始化失败返回 */  
  400.         if(!initClient()) {  
  401.             return;  
  402.         }  
  403.         /** 单个手机号发送短信的方式的参数准备 */  
  404.         // 手机号码  
  405.         String mobilephone = jbPhone;  
  406.         // 短信内容+随机生成的6各短信验证码  
  407.         String content = “根据中国证监会举报中心委托,特向您发送这个条短信。您的报验证码为:” + code;  
  408.         // 操作用户的ID  
  409.         Integer operId = Integer.parseInt(Env.getInstance().getProperty(“operId”));  
  410.         // 定时发送的的出殡时间(缺省为空,如果就经常发送,填空)  
  411.         String tosend_time = “”;  
  412.         // 应用体系的不够信ID,用户查询该短信的状态报告(缺省为0,即未待询问短信的状态报告)  
  413.         int sms_id = 0;  
  414.         // 黑名单过滤(0:不欲黑名单过滤,1:需要黑名单过滤,缺省为0)  
  415.         short backlist_filter = 0;  
  416.         // 禁止语过滤(0:不需禁止语过滤,1:需要禁止语过滤,缺省为0)  
  417.         short fbdword_filter = 0;  
  418.         // 优先级(值更充分优先级更强,0:普通,1,:优先,2:最高,缺省为0)  
  419.         short priority = 0;  
  420.         // 短信中时间(格式为:YYYY-MM-DD HH:mm:ss目前呢空)  
  421.         String valid_time = “”;  
  422.         /** 发送短信之前先行统计一个已发送的差信长数 */  
  423.         int messageCount = countService.findAllRecord(mobilephone);  
  424.         log.info(“已发短信条数为:” +messageCount);  
  425.         if(messageCount < 5){  
  426.             /** 单个手机号发送短信 */  
  427.             if (!sendMessage(mobilephone, content, operId, tosend_time, sms_id,  
  428.                     backlist_filter, fbdword_filter, priority, valid_time)) {  
  429.                 result = “0”;// 失败  
  430.             } else {  
  431.                 result = “1”;// 成功  
  432.                 /** 发送一长达短信,记录一致长达短信记录,为了好之后的统计短信发送次数 */  
  433.                 count.setPhone(mobilephone);// 手机号码  
  434.                 count.setCaptcha(code);// 短信验证码  
  435.                 count.setSendTime(CommonUtil.getNowDate());// 短信发送时间  
  436.                 if(count != null){  
  437.                     countService.saveEntity(count);  
  438.                     log.info(“短信验证码发送记录保留成功!”);  
  439.                 }  
  440.             }  
  441.         }else{  
  442.             result = “2”;//一个手机号码最多发送5长短信验证码  
  443.             log.info(“该手机号码今天发送验证码过多”);  
  444.         }  
  445.         HttpServletResponse response = WebContextUtil.getResponse();  
  446.         response.setContentType(“application/json;charset=UTF-8”);  
  447.         response.setHeader(“Cache-Control”, “no-cache”);  
  448.         PrintWriter out = response.getWriter();  
  449.         out.write(result.toString());  
  450.     }  
  451.       
  452.     /** 
  453.      * WebService客户端初始化 
  454.      *  
  455.      */  
  456.     public static boolean initClient() {  
  457.         /** 
  458.          * 判断客户端是不是曾初始化 
  459.          */  
  460.         if (!SmsWebClient.enable()) {  
  461.             int ret = 0;  
  462.             try {  
  463.                 ret = SmsWebClient.init(url, userName, passWord);  
  464.                 if (ret == -1 || !SmsWebClient.enable()) {  
  465.                     log.info(“短信平台接口初始化失败!”);  
  466.                     return false;  
  467.                 }  
  468.                 log.info(“短信平台接口初始化成功!” + ret + “—–“);  
  469.             } catch (Exception ex) {  
  470.                 ex.printStackTrace();  
  471.                 log.info(“短信平台接口初始化过程被深!”);  
  472.             }  
  473.         }  
  474.         return true;  
  475.     }  
  476.       
  477.     /** 
  478.      * 单个手机号码发送 
  479.      *  
  480.      * @param mobilephone 
  481.      *            手机号 
  482.      * @param content 
  483.      *            短信内容 
  484.      * @param operId 
  485.      *            操作用户的ID 
  486.      * @param tosend_time 
  487.      *            定时发送的发送时间 
  488.      * @param sms_id 
  489.      *            应用体系的缺乏信ID 
  490.      * @param backlist_filter 
  491.      *            黑名单过滤 
  492.      * @param fbdword_filter 
  493.      *            禁止语过滤 
  494.      * @param priority 
  495.      *            优先级 
  496.      * @param valid_time 
  497.      *            短信中时间 
  498.      */  
  499.     public static boolean sendMessage(java.lang.String mobilephone,  
  500.             java.lang.String content, int operId, java.lang.String tosend_time,  
  501.             int sms_id, short backlist_filter, short fbdword_filter,  
  502.             short priority, java.lang.String valid_time) {  
  503.         // 单个手机号码发送  
  504.         try {  
  505.             SmsReturnObj retObj = SmsWebClient.webSendMessage(mobilephone,  
  506.                     content, operId, tosend_time, sms_id, backlist_filter,  
  507.                     fbdword_filter, priority, valid_time);  
  508.             if (retObj.getReturnCode() != 1) {  
  509.                 log.info(“短信发送失败,原为:” + retObj.getReturnMsg());  
  510.                 return false;  
  511.             } else {  
  512.                 log.info(“短信发送成功!返回结果吧:” + retObj.getReturnMsg());  
  513.                 return true;  
  514.             }  
  515.         } catch (Exception ex) {  
  516.             ex.printStackTrace();  
  517.             log.info(“短信发送过程有甚!”);  
  518.         }  
  519.         return true;  
  520.     }  
  521.       
  522.       
  523. }  

假设你以一个小企业,或者说而处于某一个阶段,此时恐怕对您的艺要求非常重大,这为是若只要带在同伴等于前方移动的百般重大的因素之一,但是到了另外一个时空下,有或是技术便换得无根本。

2.输入正确的无绳电话机号晚点击获取验证码后的体:

中标之 CTO 应该避免的老三那个误区

 

中冲剑:公司背景决定 CTO 定位

 

特点:大起大阖,气势雄迈。

 

及业务目标才是本色

六:具体的差信接口demo到此地下,这里您下充斥了邪不可知学有所成之发送短信,因为你必须要欠信平台商给您提供:url,userName,passWord,operId,以及短信平台商还要绑定你的外网ip地址,这样才当真的出殡短信。

面面俱到 CTO 的“六脉神剑”

4.使一个手机号一上发送超过3浅就是提示无克发送:

作业主来讲,他莫必然想掌握你,或者说他一向没工夫错开理解您。

中国哲学 16

哪怕你能力大、写来底代码很全面、精通大数目,但是倘若你莫到位以上那些,就可怜为难交差。你带来这么深的社的下,其实这些力量反而并无是那要。

其实,我们举行技术的且愿做“农民”,这是技术人员的秉性。什么给“农民”气质呢?就是啊事还乐意自己涉嫌,“农民”就是自给自足嘛。

一个宏观的 CTO,如果在工作达到之思量可以比 CEO
提前半年的言辞,那就是相当成功了,否则对 CEO
向你提出的森题目,你莫缓解方案以来,怎么去管理 CEO?

有局部铺面的业务非常复杂,那么当您失去举行政工相对比较复杂的一个商家的 CTO
的时节,如果您从未艺术在短期内去弥补短板的话,对你在柜之位置,甚至对您所有公司生涯还深不好。

韩军

无写代码的 CTO 不是一模一样名叫好 CTO?

说句实话,真的是非常拮据的事,技术成本大怪。如果你的决定和商业价值不同等,那您必不见面马到成功。

盖具备的蜜月期都是老大短缺的,你绝不想方老板对而先天就是是爱护,就是使为您资源,其实并无见面。

然后,你才能够排列有店面临的产生安问题,我利用怎样方法来缓解这些困难。

立刻其实是 CTO
非常关键之课题,因为以另外一个号,某种程度上你在此局里是象征技术集团去与老板沟通。

中国哲学 17

感知业务就是 CTO
一定要感知你的买主,要与你的买主来一直的牵连,至少一年一如既往暨一定量涂鸦,这等同碰老重要。

本条微像乔布斯所说的,顾客是匪晓得他的要求的,你不用以为老板对他的技艺要求异常懂,他恐怕连无知情。

对此一个五六个人口拉自底创业企业,那是 CTO
不知道技术,或者无写代码,应该于为难。这时谈完美的 CTO
能力模型,我看几乎是休可能。

由总体趋势来拘禁,未来对 CTO 在业务点的渴求凡尤为大之。

首先,从对 CTO 的一个认识误区讲起。

假定您老板是事人出身,那他本着技术的知情就是还非均等了,他觉得这个技术及之事体就是是随手拈来,他会怀念自己早已花费了这般多钱请你来,你是大牛,你尽管相应扶持我将此搞好。

特性:巧妙灵活,难以捉摸。

特色:轻灵迅速。

末,我认为 CTO
要管想法提炼出来,形成和谐的同样模拟系统。有矣是体系下,在使过程中又展开更正和管,完善自己之这套系统,这是关键所在。

CEO 期待什么的 CTO?

怀有全面 CTO 的“六脉神剑”。不管您是未是技巧出身,都可做技术
CTO。另外,不同的合作社形象以及见仁见智之腾飞思路,对 CTO 的求未顶相同。

有时,我们倒在移动在就是忘记自己之初心了。作为 CTO
来讲,你的为主还是上业务目标,用技术之手段及业务目标,用矮的基金、最抢之快慢,持续带来新的效应。这才是公的中坚工作。

俺们开技术出身的,崇拜的凡我们的活佛,师父一定要比较就弟强,这就是神州底风思维。在炎黄,叫匠气也好,工匠精神可以,这是中国之一致栽传统,我们召开技术出身的呢还是受命着这种一替一替传承的琢磨模型。

少泽剑:新时代之 CTO 要熟悉公司事务

但是今天未是这种场面了,有的局招聘了无知晓业务的
CTO,最后都未极端成功。为什么也?因为这个 CTO
所关切的点与全体企业关注之接触没交集。

仍您是一个牵动在 1000 人、5000 人技术团队的
CTO,你有无来描绘代码能力,其实是少数还非紧要。你用再也多的设想战略,包括工作的韬略暨技艺之韬略,你见面设想多公司怎么提高的问题。

自当 CTO
要力所能及把行业的倾向,还有针对性斯圈子开展深入研讨,达到专家级别。你针对某一个技能之知晓更加怪,把握行业的大势才可能针对工作还发出救助。

举一个百般典型的事例,国内众工程师是程序员出身,我擅长啊,最后便将善的技巧带来至了店铺,这种状况比比皆是。

立带来被自己一个很特别的思量,CTO 不是技巧出身,你怎么开 CTO
啊?因为在我们中华人口之风土意识中,都觉得 CTO 天然是技术出身。

中国哲学 18

而这种光景指向商厦连无会见带来无限酷之功利,甚至某种程度上,会堵住公司运行与提高。

自己本着许多 CTO
的一个忠告是若若下的某部起技艺,不肯定是公嗜的技术,或者是你擅长的技能。

5000 人的技巧团队不待一个技巧大牛做 CTO

其实就是是就以下几点:

还有很重大之均等码业务,CTO
要认清技术的政策及商业价值是否相同。如果您于一个有点店铺,想花很多之成本去做高并发,或者双活乃至异地多活。

说直接点就是老板娘的见地就控制了若这个团体未来之走向,你团队的力量、团队收获的资源,或者说团队在信用社的身价是由
CTO 决定的。

仲只,你要是解决业主的题目。他管你造成进来,就是只要缓解技术及之题材。

 


CTO,你的行事基本就是解决企业之技巧问题,要知道信用社在技术上面的极度特别难题是呀,老板对而的梦想而是什么。

为此,这些还如根据企业领域与性能来拘禁 CTO 的求实定位。

如业主找的 CTO
都是匪明了业务的,你有些懂得一些,你尽管死有优势。如果大家都坏了解业务,你或多或少都不知情,那您便异常悬。

今天极端流行的艺不齐明天尚见面大行其道,技术永远地处一个变的进程。对于技术的前瞻性,要求
CTO 持续关注技术的向上,这是体现价值之加分码。

CTO
的稳定以及你所处庄的行当背景有关。如果您行纯技术之缓解方案,比如说你是开老大数额的
CTO,或者开网络安全的 CTO。

 

关冲剑:CTO 在公司之中心功能

      他深谙电商的志,从零打造 1
号店网站同供应链系统,以技能引领业务发展。他是欧电云创始人韩军,下面将出于外分享到
CTO “六脉神剑”的经验之谈。

如何的团体氛围是极度好之?是同一团和气的氛围最好,还是说出战争力的气氛最好?

于这时,CTO
要表示什么吗?我能够大胆,我能做事,所以你们就自己提到,没问题。在创业团中,CTO
要发生这种大胆的力量。

CTO
的本来面目就是是缓解业主对技术之想望。每一个老板对技术的梦想是未同等的,当然首先独你得是一旦管控外的企盼,不可知于这个期待无界限。

商阳剑:CTO 的并职责

特性:忽来忽去,变化精微。

少商剑:CTO 需要必备技术前瞻性

不要做“农民”

用作技术之万丈官员来讲,一定要是深切认识及工作是控制整个的。所以各一个
CTO
都使错过增强自己之事务能力,如果这个工作是您的短板,那您不过好去一些业务相对比简单的商号。

互相较之下,当然是发战争力的气氛更好,不过这样见面掉一些人情味。

即使如最近大家对 CTO 写不写程序的热议,这取决你针对 CTO
的概念是啊。对于互联网企业,如果 CTO
不写序,好像是一个不孝的行,当然这个还要扣你所当公司发生差不多杀局面要肯定。但是作为
CTO,我从来不写了一行代码。

卿若勘验很多地方,例如你如考虑将资源位居哪一方面,哪部分凡是自己如果重要投入的,哪有凡自家得以略放平放开的,哪部分凡是自身好引入外界资源来促成的。

中国哲学 19

欧电云创始人

曾凭1如泣如诉店CTO、51job网站技术官员。在互联网技术领域有所盛誉,是超多只世界的解决方案专家,个人具备多翻新技术专利。

中国哲学 20

自己举行了很多商厦之 CTO,发现就算是技术出身的
CEO,随着岁月之变动,他针对性君的掌握吧会见发生变化。

再有即使是针对技术趋势的把了,对 CTO 的未来提高是发出影响的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图