php+mvc模式的登陆口验证码可以点击刷新,不会自动刷新,求大神解决

1:描述问题:网站首页登陆口不管如何刷新[F5],验证码都不会变。但是点击验证码的话可以变为新的验证码!而且我们使用验证码登陆成功后同时退出来,此时登陆口的验证码还是之前使用过的验证码,没有更新!请大神帮我解决下,贴出正确的代码!因为本人不是很懂,只会照葫芦画瓢!万分感谢!无解决方案的请别回复了谢谢!

文件名:PassportController 代码如下,这个应该是控制器

/* 生成验证码 */
public function verify()
{
      $config = [
          'fontSize' => 19, // 验证码字体大小
          'length' => 4, // 验证码位数
          'imageH' => 34
      ];
      $Verify = new Verify($config);
      $Verify->entry();
  }

  /* 验证码校验 */
 public function check_verify($code, $id = '')
  {
      $verify = new \Think\Verify();
      $res = $verify->check($code, $id);
     $this->ajaxReturn($res, 'json');
  }

public function accessRules()
{
    return array(
            array('allow',  // 允许所有用户访问 'login' 动作.
                    'users'=>array('*'),
            ),
            array('allow', // 允许认证用户访问所有动作
                    'users'=>array('@'),
            ),
            array('deny',  // 拒绝所有的用户。
                    'users'=>array('*'),
            ),
    );
}
/*
    异地登录检测
*/
public function actionPlaceOtherLogin()
{
    if(isset($_POST['username']) && $_POST['username']!="" && isset($_POST['pwd']) && $_POST['pwd'])
    {
        $siteLogin=new SiteLoginForm;
        $siteLogin->username=$_POST['username'];
        $siteLogin->password=$_POST['pwd'];
        $siteLogin->verifyCode=$_POST['verifyCode'];
        $siteLogin->rememberMe=false;
        if($siteLogin->validate())//用户名密码正确
        {
            $userinfo=User::model()->findByAttributes(array(
                'Username'=>$_POST['username'],
                'PassWord'=>md5($_POST['pwd'])
            ));
            if($userinfo->Status==0)//用户帐号没有被冻结,处于正常状态
            {
                if($userinfo->PlaceOtherLogin==0)//用户没有开启异地登录,则允许用户直接提交登录
                {
                    echo "true";
                }else//开启异地登录
                {
                    //1.检查此次登录的ip与最近一次登录的ip是否相同
                    $lastLoginLog=Loginlog::model()->find(array(
                        'condition'=>'userid='.$userinfo->id,
                        'order'=>'id desc'
                    ));
                    if($lastLoginLog->loginip===XUtils::getClientIP())//如果本次登录ip与最近一次登录ip相同则允许用户直接提交
                    {
                        echo "true";
                    }else//如果不同则返回通知使用短信验证
                    {
                        echo $userinfo->Phon;//需要手机接手短信验证码,返回手机号码,以便发送短信进行验证
                    }
                }
            }else//帐号被冻结
            {
                echo "LOCK";
            }
        }else {
            echo "FAIL";
        }
    }
}



// 登陆口的文件名:index  代码如下
//

<link rel="stylesheet" type="text/css" href="<?php echo VERSION2;?>2_files/index.css">
<div class="banNer"><!--首页幻灯-->
    <ul class="rslides" id="slider">
      <li style="background: url(<?php echo VERSION2;?>img/banner/banner_tg.jpg) no-repeat center top;">
      <li style="background: url(<?php echo VERSION2;?>img/banner/003.jpg) no-repeat center top;">
      </li>
    </ul>
    <!--登录区域-->
    <div class="login_frame_bg" <?php if(Yii::app()->user->getId())echo 'style="display:none;"';?>>
        <div class="login_frame">
        <span class="warningSpan"<?php if(isset($_GET['loginStatus']) && $_GET['loginStatus']=='fail') echo 'style="display:block;"';?>>用户名或密码错误</span>
        <div id="myForm">
        <table>
            <form method="post" onsubmit="return checkLogin()" action="<?php echo $this->createUrl('passport/login');?>">
            <tbody>
                <tr>
                    <td>
                        <div class="login_mailbox">
                            <input type="hidden" name="User[position]" value="index" />
                            <input id="lusername" type="text"  name="User[Username]" autocomplete="off" placeholder="用户名">
                        </div>
                    </td>
                </tr>
                <tr>
                    <td>
                        <p class="zq" id="miaoname" style="margin:-15px 0px 10px;"></p>
                    </td>
                </tr>
                <tr>
                    <td>
                        <div class="login_ps">
                            <input id="lpassword" type="password" name="User[PassWord]" name="LoginForm[password]" placeholder="请输入密码">
                        </div>
                    </td>
                </tr>

                <tr>
                    <td>
                        <table>
                            <tr>
                                <td>
                                    <input type="text" name="User[VerifyCode]"
                                           class=""
                                           placeholder="请输入右边验证码"
                                           style="     width: 170px;
                                                        margin-right: 5px;
                                                        border-radius: 5px;
                                                        line-height: 35px;
                                                        border: 1px solid #fff;
                                                        padding-left: 5px;"
                                           id="verifyCode"
                                    />
                                </td>
                                <td>
                                    <?php
                                    $this->widget(
                                        'CCaptcha',
                                        array('showRefreshButton'=>false,
                                            'clickableImage'=>true,
                                            'imageOptions'=>array(
                                                'alt'=>'点击换图',
                                                'title'=>'点击换图',
                                                'style'=>'cursor:pointer; 
                                            background:#fff; height:27px; 
                                            border-radius:5px;'
                                            )
                                        )
                                    );
                                    ?>
                                </td>

                            </tr>
                        </table>
                    </td>
                </tr>
                <tr>
                    <td>
                        <p  class="zq" style="height: 10px;"></p>
                    </td>
                </tr>
                <tr>
                    <td>
                        <p id="miaopwd" class="zq" style="margin:-15px 0px 10px;"></p>
                    </td>
                </tr>
                <tr>
                    <td>
                        <li style=" color:#fff; font-size:12px;"><input name="User[rememberMe]" type="checkbox" style="position: relative; top: 3px; width:12px;" /> 下次自动登录<a href="javascript:;" class="forgetPwd" style=" float:right; margin-right:28px; color:white;">忘记密码?</a></li><br />
                    </td>
                </tr>
                <tr>
                    <td>
                        <button class="login-btn" id="login_btn">登录</button>
                    </td>
                </tr>
                <tr>
                    <td>
                        <span><a href="<?php echo $this->createUrl('passport/regist');?>" id="a">还没有账号?点击注册>></a></span>
                    </td>
                </tr>
            </tbody>
            <form>
        </table>
        </div>
        </div>
    </div>
<div class="indIntr" style="background="achose.png" ><!--系统优势-->
    <div class="why_main4 clearfix">

    </div>
</div>

        <script>
    //登录表单检测
    function checkLogin()
    {
        if($("#lusername").val()=="")
        {
            layer.tips('用户名不能为空', '#lusername');
            return false;
        }else if($("#lpassword").val()=="")
        {
            layer.tips('密码不能为空', '#lpassword');
            return false;
        }else if($("#verifyCode").val()=="")
        {
            layer.tips('验证码不能为空', '#verifyCode');
            return false;
        }else
        {
            var submitStatus=0;//提交状态初始化verifyCode
            var phone=0;//手机号码初始化
            //检查是否开启异地登录
            $.ajax({
                type:"POST",
                url:"<?php echo $this->createUrl('passport/placeOtherLogin');?>",
                data:{
                    "username":$("#lusername").val(),
                    "pwd":$("#lpassword").val(),
                    "verifyCode":$("#verifyCode").val(),
                },
                async:false,
                success:function(msg)
                {
                    if(msg=="true")//不用检测
                    {
                        submitStatus=1;
                    }else if(msg=="FAIL")//用户名或密码不正确
                    {

                    }
                    else if(msg=="LOCK")//用户帐户被冻结
                    {
                        submitStatus=3;
                    }else//需要发送手机验证码
                    {
                        phone=msg;//赋值用户手机号
                        submitStatus=2;
                    }
                }
            });
            /*alert(submitStatus);
            exit;*/
            //检查是否开启异地登录
            if(submitStatus==0)//用户名密码不正确
            {
                layer.tips('用户名,密码或验证码不正确', '#lusername', {
                    tips: [1, '#0FA6D8'] //还可配置颜色
                });
                return false;
            }else if(submitStatus==3)
            {
                //询问框
                layer.confirm('<span style="color:red;">您的帐户已被冻结,如有需要请联系客服人员</span>', {
                   btn: ['知道了'] //按钮
                });
                return false;
            }else if(submitStatus==1)//直接提交
            {
                return true;
            }else//2表示需要发送短信验证码
            {
                //发送验证码
                $.ajax({
                    type:"POST",
                    url:"<?php echo $this->createUrl('site/sms');?>",
                    data:{"phone":phone,"phoneCode":"DONE"},
                    async:false,
                    success:function(msgCode)
                    {
                        if(msgCode=="SUCCESS")
                        {
                            //询问框
                            layer.confirm('<span style="color:red;">短信发送成功(异地登录请输入手机验证码)</span><br/>验证码<input class="text1 phoneCodeVal" name="phoneCodeVal" />', {
                               btn: ['确定提交'] //按钮
                            },function(){
                               if($(".phoneCodeVal").val()=="")//验证码不为空
                               {
                                    layer.tips('验证码不能为空', '.phoneCodeVal');
                               }else{
                                   //发送手机号与验证码去验证正确性
                                    $.ajax({
                                        type:"POST",
                                        url:"<?php echo $this->createUrl('passport/userCheckPhoneAndCode');?>",
                                        data:{"phone":phone,"phoneCode":$(".phoneCodeVal").val()},
                                        async:false,
                                        success:function(msgCertain)
                                        {
                                            if(msgCertain=="SUCCESS")//手机验证码检测通过
                                            {
                                                //验证通过直接进行提交登录
                                                $.ajax({
                                                    type:"POST",
                                                    url:"<?php echo $this->createUrl('passport/codePassLogin');?>",
                                                    data:{"username":$("#lusername").val(),"pwd":$("#lpassword").val()},
                                                    async:false,
                                                    success:function(msglogin)
                                                    {
                                                        if(msglogin=="SUCCESS")//登录成功刷新当前页面
                                                        {
                                                             location.reload();                                                            //询问框

                                                        }else//登录异常刷新当前页面
                                                        {
                                                            layer.confirm('<span style="color:red;">登录异常</span>,您可以联系客服人员', {
                                                               btn: ['知道了'] //按钮
                                                            });
                                                        }
                                                    }
                                                });
                                                //验证通过直接进行提交登录
                                            }else if(msgCertain=="CODEFAIL")//验证不正确
                                            {
                                                layer.tips('验证码不正确', '.phoneCodeVal');
                                            }else//手机号异常
                                            {
                                                layer.tips('手机号码异常', '.phoneCodeVal');
                                            }
                                        }
                                    });
                                    //发送手机号与验证码去验证正确性
                                }
                            });
                        }else
                        {
                            //询问框
                            layer.confirm('<span style="color:red;">异地登录验证-短信发送失败,可能发送次数过多</span>,您可以联系客服人员', {
                               btn: ['知道了'] //按钮
                            });
                            phoneAndCodeCheckStatus=0;
                        }
                    }
                });
                //发送短信验证码结束
                return false;
            }
        }  
    }

    //忘记密码
    $(".forgetPwd").click(function(){
        layer.open({
            type: 2,
            title:'找回密码',
            area: ['375px','270px'],
            skin: 'layui-layer-rim', //加上边框
            content: ['<?php echo $this->createUrl('passport/forgetPwd');?>', 'no']
        });
    });



</script>


    // 能帮我解决问题的才回复,或者还需要我提供什么的请留言,谢谢了,

1个回答

qq_42715875
qq_42715875 没解决实质性问题呀
5 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
php+mvc模式的登陆口验证码可以点击刷新,不会自动刷新,求大神解决
1:描述问题:网站首页登陆口不管如何刷新[F5],验证码都不会变。但是点击验证码的话可以变为新的验证码!而且我们使用验证码登陆成功后同时退出来,此时登陆口的验证码还是之前使用过的验证码,没有更新!请大神帮我解决下,贴出正确的代码!因为本人不是很懂,只会照葫芦画瓢!万分感谢!无解决方案的请别回复了谢谢! 文件名:PassportController 代码如下,这个应该是控制器 /* 生成验证码 */ public function verify() { $config = [ 'fontSize' => 19, // 验证码字体大小 'length' => 4, // 验证码位数 'imageH' => 34 ]; $Verify = new Verify($config); $Verify->entry(); } /* 验证码校验 */ public function check_verify($code, $id = '') { $verify = new \Think\Verify(); $res = $verify->check($code, $id); $this->ajaxReturn($res, 'json'); } public function accessRules() { return array( array('allow', // 允许所有用户访问 'login' 动作. 'users'=>array('*'), ), array('allow', // 允许认证用户访问所有动作 'users'=>array('@'), ), array('deny', // 拒绝所有的用户。 'users'=>array('*'), ), ); } /* 异地登录检测 */ public function actionPlaceOtherLogin() { if(isset($_POST['username']) && $_POST['username']!="" && isset($_POST['pwd']) && $_POST['pwd']) { $siteLogin=new SiteLoginForm; $siteLogin->username=$_POST['username']; $siteLogin->password=$_POST['pwd']; $siteLogin->verifyCode=$_POST['verifyCode']; $siteLogin->rememberMe=false; if($siteLogin->validate())//用户名密码正确 { $userinfo=User::model()->findByAttributes(array( 'Username'=>$_POST['username'], 'PassWord'=>md5($_POST['pwd']) )); if($userinfo->Status==0)//用户帐号没有被冻结,处于正常状态 { if($userinfo->PlaceOtherLogin==0)//用户没有开启异地登录,则允许用户直接提交登录 { echo "true"; }else//开启异地登录 { //1.检查此次登录的ip与最近一次登录的ip是否相同 $lastLoginLog=Loginlog::model()->find(array( 'condition'=>'userid='.$userinfo->id, 'order'=>'id desc' )); if($lastLoginLog->loginip===XUtils::getClientIP())//如果本次登录ip与最近一次登录ip相同则允许用户直接提交 { echo "true"; }else//如果不同则返回通知使用短信验证 { echo $userinfo->Phon;//需要手机接手短信验证码,返回手机号码,以便发送短信进行验证 } } }else//帐号被冻结 { echo "LOCK"; } }else { echo "FAIL"; } } } // 登陆口的文件名:index 代码如下 // <link rel="stylesheet" type="text/css" href="<?php echo VERSION2;?>2_files/index.css"> <div class="banNer"><!--首页幻灯--> <ul class="rslides" id="slider"> <li style="background: url(<?php echo VERSION2;?>img/banner/banner_tg.jpg) no-repeat center top;"> <li style="background: url(<?php echo VERSION2;?>img/banner/003.jpg) no-repeat center top;"> </li> </ul> <!--登录区域--> <div class="login_frame_bg" <?php if(Yii::app()->user->getId())echo 'style="display:none;"';?>> <div class="login_frame"> <span class="warningSpan"<?php if(isset($_GET['loginStatus']) && $_GET['loginStatus']=='fail') echo 'style="display:block;"';?>>用户名或密码错误</span> <div id="myForm"> <table> <form method="post" onsubmit="return checkLogin()" action="<?php echo $this->createUrl('passport/login');?>"> <tbody> <tr> <td> <div class="login_mailbox"> <input type="hidden" name="User[position]" value="index" /> <input id="lusername" type="text" name="User[Username]" autocomplete="off" placeholder="用户名"> </div> </td> </tr> <tr> <td> <p class="zq" id="miaoname" style="margin:-15px 0px 10px;"></p> </td> </tr> <tr> <td> <div class="login_ps"> <input id="lpassword" type="password" name="User[PassWord]" name="LoginForm[password]" placeholder="请输入密码"> </div> </td> </tr> <tr> <td> <table> <tr> <td> <input type="text" name="User[VerifyCode]" class="" placeholder="请输入右边验证码" style=" width: 170px; margin-right: 5px; border-radius: 5px; line-height: 35px; border: 1px solid #fff; padding-left: 5px;" id="verifyCode" /> </td> <td> <?php $this->widget( 'CCaptcha', array('showRefreshButton'=>false, 'clickableImage'=>true, 'imageOptions'=>array( 'alt'=>'点击换图', 'title'=>'点击换图', 'style'=>'cursor:pointer; background:#fff; height:27px; border-radius:5px;' ) ) ); ?> </td> </tr> </table> </td> </tr> <tr> <td> <p class="zq" style="height: 10px;"></p> </td> </tr> <tr> <td> <p id="miaopwd" class="zq" style="margin:-15px 0px 10px;"></p> </td> </tr> <tr> <td> <li style=" color:#fff; font-size:12px;"><input name="User[rememberMe]" type="checkbox" style="position: relative; top: 3px; width:12px;" /> 下次自动登录<a href="javascript:;" class="forgetPwd" style=" float:right; margin-right:28px; color:white;">忘记密码?</a></li><br /> </td> </tr> <tr> <td> <button class="login-btn" id="login_btn">登录</button> </td> </tr> <tr> <td> <span><a href="<?php echo $this->createUrl('passport/regist');?>" id="a">还没有账号?点击注册>></a></span> </td> </tr> </tbody> <form> </table> </div> </div> </div> <div class="indIntr" style="background="achose.png" ><!--系统优势--> <div class="why_main4 clearfix"> </div> </div> <script> //登录表单检测 function checkLogin() { if($("#lusername").val()=="") { layer.tips('用户名不能为空', '#lusername'); return false; }else if($("#lpassword").val()=="") { layer.tips('密码不能为空', '#lpassword'); return false; }else if($("#verifyCode").val()=="") { layer.tips('验证码不能为空', '#verifyCode'); return false; }else { var submitStatus=0;//提交状态初始化verifyCode var phone=0;//手机号码初始化 //检查是否开启异地登录 $.ajax({ type:"POST", url:"<?php echo $this->createUrl('passport/placeOtherLogin');?>", data:{ "username":$("#lusername").val(), "pwd":$("#lpassword").val(), "verifyCode":$("#verifyCode").val(), }, async:false, success:function(msg) { if(msg=="true")//不用检测 { submitStatus=1; }else if(msg=="FAIL")//用户名或密码不正确 { } else if(msg=="LOCK")//用户帐户被冻结 { submitStatus=3; }else//需要发送手机验证码 { phone=msg;//赋值用户手机号 submitStatus=2; } } }); /*alert(submitStatus); exit;*/ //检查是否开启异地登录 if(submitStatus==0)//用户名密码不正确 { layer.tips('用户名,密码或验证码不正确', '#lusername', { tips: [1, '#0FA6D8'] //还可配置颜色 }); return false; }else if(submitStatus==3) { //询问框 layer.confirm('<span style="color:red;">您的帐户已被冻结,如有需要请联系客服人员</span>', { btn: ['知道了'] //按钮 }); return false; }else if(submitStatus==1)//直接提交 { return true; }else//2表示需要发送短信验证码 { //发送验证码 $.ajax({ type:"POST", url:"<?php echo $this->createUrl('site/sms');?>", data:{"phone":phone,"phoneCode":"DONE"}, async:false, success:function(msgCode) { if(msgCode=="SUCCESS") { //询问框 layer.confirm('<span style="color:red;">短信发送成功(异地登录请输入手机验证码)</span><br/>验证码<input class="text1 phoneCodeVal" name="phoneCodeVal" />', { btn: ['确定提交'] //按钮 },function(){ if($(".phoneCodeVal").val()=="")//验证码不为空 { layer.tips('验证码不能为空', '.phoneCodeVal'); }else{ //发送手机号与验证码去验证正确性 $.ajax({ type:"POST", url:"<?php echo $this->createUrl('passport/userCheckPhoneAndCode');?>", data:{"phone":phone,"phoneCode":$(".phoneCodeVal").val()}, async:false, success:function(msgCertain) { if(msgCertain=="SUCCESS")//手机验证码检测通过 { //验证通过直接进行提交登录 $.ajax({ type:"POST", url:"<?php echo $this->createUrl('passport/codePassLogin');?>", data:{"username":$("#lusername").val(),"pwd":$("#lpassword").val()}, async:false, success:function(msglogin) { if(msglogin=="SUCCESS")//登录成功刷新当前页面 { location.reload(); //询问框 }else//登录异常刷新当前页面 { layer.confirm('<span style="color:red;">登录异常</span>,您可以联系客服人员', { btn: ['知道了'] //按钮 }); } } }); //验证通过直接进行提交登录 }else if(msgCertain=="CODEFAIL")//验证不正确 { layer.tips('验证码不正确', '.phoneCodeVal'); }else//手机号异常 { layer.tips('手机号码异常', '.phoneCodeVal'); } } }); //发送手机号与验证码去验证正确性 } }); }else { //询问框 layer.confirm('<span style="color:red;">异地登录验证-短信发送失败,可能发送次数过多</span>,您可以联系客服人员', { btn: ['知道了'] //按钮 }); phoneAndCodeCheckStatus=0; } } }); //发送短信验证码结束 return false; } } } //忘记密码 $(".forgetPwd").click(function(){ layer.open({ type: 2, title:'找回密码', area: ['375px','270px'], skin: 'layui-layer-rim', //加上边框 content: ['<?php echo $this->createUrl('passport/forgetPwd');?>', 'no'] }); }); </script> // 能帮我解决问题的才回复,或者还需要我提供什么的请留言,谢谢了,
PHP登陆口随机验证码问题[无法刷新新的验证码]
网站首页登陆口,不管怎么刷新网站,验证码都不改变新的验证码,但是点击验证码的话可以改变新的验证码,例如我使用当前验证码[abf]进行登陆账号,登陆进去后,立马退出账号,同时回到首页登陆口,此时的验证码还是[abf],我要做成刷新网站能及时变更新的验证码,点击也能变更新的验证码,登陆账号进去退出来后就是新的验证码,个人感觉应该是缓存问题导致的! 网站是:php+mvc模式的!谁有空帮我解决的适当给点小费也可以!需要什么我都配合处理
MVC中如何自动刷新cshtml页面
MVC中如何自动刷新cshtml页面?像是window.loacation.reload是刷新整个页面,但是如何只刷新cshtml页?有没有具体的代码,多谢
请问WebForm和MVC的用户界面部分(View),写法或者实现方法上有什么不同,以及都有什么特点?
本人.NET WebForm零基础,但之前学过.NET MVC,并且实践过系统开发, 主要负责了View的部分。 现在有个课题,是把WebForm系统改成MVC的,所以想知道View这部分有什么区别。 语言表达的不太准确,请谅解。 万分感谢!!!
mvc实现点击按钮自动登录,不输入用户名和密码
我想用MVC实现点击按钮就自动获取到系统的用户名和密码并显示在模板页中,请问那个大神能给解决一下啊!先谢了见图所示:![图片说明](https://img-ask.csdn.net/upload/201501/05/1420436530_439452.png)当点击按钮时就能自动获取用户名显示出来
有没有哪位大佬指导一下spring boot连MongoDB的时候发生如下错误,该怎么解决?
com.mongodb.MongoIncompatibleDriverException: **Server at 127.0.0.1:20006 reports wire version 0, but this version of the driver requires at least 1 (MongoDB 2.6).** at com.mongodb.connection.BaseCluster.createIncompatibleException(BaseCluster.java:385) ~[mongo-java-driver-3.6.3.jar:na] at com.mongodb.connection.BaseCluster.throwIfIncompatible(BaseCluster.java:369) ~[mongo-java-driver-3.6.3.jar:na] at com.mongodb.connection.BaseCluster.selectServer(BaseCluster.java:101) ~[mongo-java-driver-3.6.3.jar:na] at com.mongodb.binding.ClusterBinding$ClusterBindingConnectionSource.<init>(ClusterBinding.java:82) ~[mongo-java-driver-3.6.3.jar:na] at com.mongodb.binding.ClusterBinding$ClusterBindingConnectionSource.<init>(ClusterBinding.java:78) ~[mongo-java-driver-3.6.3.jar:na] at com.mongodb.binding.ClusterBinding.getReadConnectionSource(ClusterBinding.java:65) ~[mongo-java-driver-3.6.3.jar:na] at com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:413) ~[mongo-java-driver-3.6.3.jar:na] at com.mongodb.operation.FindOperation.execute(FindOperation.java:711) ~[mongo-java-driver-3.6.3.jar:na] at com.mongodb.operation.FindOperation.execute(FindOperation.java:83) ~[mongo-java-driver-3.6.3.jar:na] at com.mongodb.Mongo$3.execute(Mongo.java:826) ~[mongo-java-driver-3.6.3.jar:na] at com.mongodb.MongoIterableImpl.execute(MongoIterableImpl.java:130) ~[mongo-java-driver-3.6.3.jar:na] at com.mongodb.MongoIterableImpl.iterator(MongoIterableImpl.java:77) ~[mongo-java-driver-3.6.3.jar:na] at org.springframework.data.mongodb.core.MongoTemplate.executeFindMultiInternal(MongoTemplate.java:2440) ~[spring-data-mongodb-2.0.7.RELEASE.jar:2.0.7.RELEASE] at org.springframework.data.mongodb.core.MongoTemplate.findAll(MongoTemplate.java:1649) ~[spring-data-mongodb-2.0.7.RELEASE.jar:2.0.7.RELEASE] at org.springframework.data.mongodb.core.MongoTemplate.findAll(MongoTemplate.java:1644) ~[spring-data-mongodb-2.0.7.RELEASE.jar:2.0.7.RELEASE] at com.micims.manufacture.service.MongoDBService.getAll(MongoDBService.java:22) ~[classes/:na] at com.micims.manufacture.controller.TestController.get(TestController.java:31) ~[classes/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_65] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_65] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_65] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:635) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.5.31.jar:8.5.31] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496) [tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) [tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) [tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803) [tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790) [tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1468) [tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.31.jar:8.5.31] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_65] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_65] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.31.jar:8.5.31] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_65]
java的MVC模式的疑问,谢谢
我是MVC模式菜鸟。MVC模式中,因为Controller需要和View和Model交互,所以,Controller持有View和Model的引用。我想问的是,View中应该持有Controller的引用,不应该有Model的引用。Model中应该持有Controller的引用,不应该由View的引用。这个说法对不对?
请教一个在MVC模式下获取访问者IP的实现方法
有这样一个需求,很简单,就是用户访问网页时,获取到用户的IP,并写入数据库。 以前用model1模式开发时,很容易实现,就是在JSP中用request.getRemoteAddr()获取用户IP地址后,调用一个bean中的方法(将刚才获取的IP作为参数),直接写入数据库就可以了。 但现在用MVC模式开发,那么写入数据库的操作都在DAO层实现,是JSP-->SERVLET-->SERVICE-->DAO这种调用关系,也就是理论上JSP不能直接调用DAO中的写入数据库操作了(也不能直接调用SERVICE),而是要通过调用SERVLET来间接实现。 那么难道是在JSP加载页面时,在js的onload中调用SERVLET(SERVLET-->SERVICE-->DAO)来实现将用户IP写入数据库的操作吗? 请大神指点,谢谢!
在MVC模式下将浏览网页的用户信息写入后台数据库的处理流程问题
大家知道,在MVC模式下,是JSP-->SERVLET-->SERVICE-->DAO这种调用关系,就是说针对后台数据库的操作都是在DAO中实现。 有这样一个需求,用户用浏览器访问网页a.jsp,a.jsp非常简单,就是用户访问时显示个hello world,没有任何提交表单的操作。 现在需要获取访问页面的用户的两个信息,一个是IP,一个是user-agent,那么是不是我应该在a.jsp里调用SERVLET,在SERVLET中用request.getHeader之类的方法获得用户信息(IP和user-agent),然后通过调用SERVICE-->DAO来把用户信息写入数据库,写完数据库,SERVLET的任务就完成了,之后没有任何跳转之类的操作。 那么,这种没有提交表单的JSP里怎么调用SERVLET呢?是不是在a.jsp加载页面时用java script的onload中调用SERVLET呢? 总感觉上面的流程有点怪怪的感觉。。。。。 请大神指教,万分感谢!
在MVC模式php站点的Nginx配置
如题关于在mvc模式下php站点的Nginx配置,用的是phpstorm+upupw,求详细过程,谢谢各位大佬
高分悬赏 JavaWeb如何开发一款学生成绩管理系统,谁详细指导下我呢
Mysql定义六张数据表:学生表、教师(管理员)表、成绩表、课程表、班级表、登录表。学生表和教师表用来存储系统用户;成绩表用来存储学生成绩;课程表用来储存课程信息;班级表用来存储班级信息;登录表用来存储登录信息。要求采用MVC设计模式,实现权限管理、登录登出、自动登录、验证码,成绩的增加、删除、修改、查询等功能,其余功能可以自由发挥。
JDBC(mvc模式)怎么设置权限验证
在mvc模式下在登录和主页的时候,怎么区分出一个用户是游客还是普通用户,还是管理员?
新手使用MVC模式开发商城项目 有可以指点和建议的大神吗 MVC开发web项目
新手使用MVC模式开发商城项目 有可以指点和建议的大神吗 MVC开发web项目
关于在MVC模式下将浏览网页的用户IP写入后台数据库的处理流程问题
大家知道,在MVC模式下,是JSP-->SERVLET-->SERVICE-->DAO这种调用关系,就是说针对后台数据库的操作都是在DAO中实现。 现在有一个简单需求,就是要将浏览网页的用户IP写入后台数据库。比如用户要浏览的网页是a.jsp,现在需要把这个用户访问a.jsp时的IP写入后台数据库。 那么请问实现流程是怎样的?难道是在JSP加载页面时用request.getRemoteAddr()获得用户IP,然后在js的onload中调用SERVLET(SERVLET-->SERVICE-->DAO)来实现将刚才获得的用户IP写入数据库吗?总觉得这个实现流程怪怪的。。。 或者说,应该是让用户先访问一个SERVLET,在SERVLET中获得用户IP,然后将用户IP写入数据库。最后,在SERVLET中跳转到a.jsp?感觉这个流程好像逻辑清晰些似的。。。。 究竟应该怎样实现好呢?请大神们指教,谢谢!
java的MVC模式View与Model的交互
MVC中,Model传递数据给View,Model可以通过观察者模式的notify的方式告诉View做出响应。应该也可以通过Controller实现和View的交互吧?这样做有必要吗?如果有,可以举个例子吗,谢谢
java mvc模式的service的设计
# 个人理解 在MVC模式中为了解耦派生出了controller,service,dao层 1. 在我看来controller是处理权限相关的事情 1. service层是处理业务逻辑以及最重要的事务控制多表插入回滚 1. dao层则是只做操作数据库部分 # 产生问题 那么我的两个不同的service如果都要对一个表进行插入操作, 而这个插入又会有多个表的插入复杂的业务,那么这一部分业务应该是放在service(把它称作serviceC)的, 那么问题就是我的serviceA对自己的表进行插入的时候同时要插入C表(和其派生表), 那么我的serviceA是不是应该把serviceC注入进来,还是说思路不对有什么其他方式实现,总不可能同样的逻辑再写一套吧,最主要还是事物的控制。
ASP.NET MVC 中文验证码
如题,请问这验证码是怎样生成的,求源码,谢谢! [图片说明](https://img-ask.csdn.net/upload/201702/13/1486974211_738177.png)
aps.net MVC5视图下模型数据的刷新问题
有一个View,上面绑定了一个model,然后按照需求有三个分页分别显示该model的不同内容。 由于页面上有不少功能按钮,使用了Ajax提交和局部刷新,使得分页显示部分可以自动完成分页部分数据的刷新显示。这些都没有问题。 现在问题是:在View上有一个提交按钮,点击提交时会将该页面上所有数据进行提交。但对数据的修改是在分页上进行的,尽管分页刷新时已经将model重新获得,但仅仅局限在分页范围内。想请教下:如果想要在任意一个分页数据的刷新时,也将View的model刷新,且不刷新整个View(Reload是肯定可以的),只是刷新模型数据,该如何做?
c# mvc 中因为我用session保存了信息,时间一长session过期,需要重新跳转外部某个链接重新获取状态
c# mvc 中因为我用session保存了信息,时间一长session过期,需要重新跳转外部某个链接重新获取状态,问题出现在这了: https://open.weixin.qq.com/connect/oauth2/authorize?appid=qwe123123qqqq&redirect_uri=http://www.xxxxxx.com/userInfo/Index&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect &字符后面的 redirect_uri scope 都出现了未定义实体的错误, 请问怎么解决
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
死磕YOLO系列,YOLOv1 的大脑、躯干和手脚
YOLO 是我非常喜欢的目标检测算法,堪称工业级的目标检测,能够达到实时的要求,它帮我解决了许多实际问题。 这就是 YOLO 的目标检测效果。它定位了图像中物体的位置,当然,也能预测物体的类别。 之前我有写博文介绍过它,但是每次重新读它的论文,我都有新的收获,为此我准备写一个系列的文章来详尽分析它。这是第一篇,从它的起始 YOLOv1 讲起。 YOLOv1 的论文地址:https://www.c...
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的回答,对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalking,作者吴晟、刘浩杨 等等 仓库地址: apache/skywalking 更...
20行Python代码爬取王者荣耀全英雄皮肤
引言 王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了。我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成。 准备工作 爬取皮肤本身并不难,难点在于分析,我们首先得得到皮肤图片的url地址,话不多说,我们马上来到王者荣耀的官网: 我们点击英雄资料,然后随意地选择一位英雄,接着F12打开调试台,找到英雄原皮肤的图片...
简明易理解的@SpringBootApplication注解源码解析(包含面试提问)
欢迎关注文章系列 ,关注我 《提升能力,涨薪可待》 《面试知识,工作可待》 《实战演练,拒绝996》 欢迎关注我博客,原创技术文章第一时间推出 也欢迎关注公 众 号【Ccww笔记】,同时推出 如果此文对你有帮助、喜欢的话,那就点个赞呗,点个关注呗! 《提升能力,涨薪可待篇》- @SpringBootApplication注解源码解析 一、@SpringBootApplication 的作用是什...
西游记团队中如果需要裁掉一个人,会先裁掉谁?
2019年互联网寒冬,大批企业开始裁员,下图是网上流传的一张截图: 裁员不可避免,那如何才能做到不管大环境如何变化,自身不受影响呢? 我们先来看一个有意思的故事,如果西游记取经团队需要裁员一名,会裁掉谁呢,为什么? 西游记团队组成: 1.唐僧 作为团队teamleader,有很坚韧的品性和极高的原则性,不达目的不罢休,遇到任何问题,都没有退缩过,又很得上司支持和赏识(直接得到唐太宗的任命,既给袈...
Python语言高频重点汇总
Python语言高频重点汇总 GitHub面试宝典仓库 回到首页 目录: Python语言高频重点汇总 目录: 1. 函数-传参 2. 元类 3. @staticmethod和@classmethod两个装饰器 4. 类属性和实例属性 5. Python的自省 6. 列表、集合、字典推导式 7. Python中单下划线和双下划线 8. 格式化字符串中的%和format 9. 迭代器和生成器 10...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
ES6基础-ES6的扩展
进行对字符串扩展,正则扩展,数值扩展,函数扩展,对象扩展,数组扩展。 开发环境准备: 编辑器(VS Code, Atom,Sublime)或者IDE(Webstorm) 浏览器最新的Chrome 字符串的扩展: 模板字符串,部分新的方法,新的unicode表示和遍历方法: 部分新的字符串方法 padStart,padEnd,repeat,startsWith,endsWith,includes 字...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
Python爬虫精简步骤1 获取数据
爬虫的工作分为四步: 1.获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。 2.解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。 3.提取数据。爬虫程序再从中提取出我们需要的数据。 4.储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。 这一篇的内容就是:获取数据。 首先,我们将会利用一个强大的库——requests来获取数据。 在电脑上安装
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
web前端javascript+jquery知识点总结
Javascript javascript 在前端网页中占有非常重要的地位,可以用于验证表单,制作特效等功能,它是一种描述语言,也是一种基于对象(Object)和事件驱动并具有安全性的脚本语言 ,语法同java类似,是一种解释性语言,边执行边解释。 JavaScript的组成: ECMAScipt 用于描述: 语法,变量和数据类型,运算符,逻辑控制语句,关键字保留字,对象。 浏览器对象模型(Br
Qt实践录:开篇
本系列文章介绍笔者的Qt实践之路。
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。   再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。   下文是原回答,希望能对你能有所启发。   如果我说,这个世界上人真的分三六九等,
为什么听过很多道理,依然过不好这一生?
记录学习笔记是一个重要的习惯,不希望学习过的东西成为过眼云烟。做总结的同时也是一次复盘思考的过程。 本文是根据阅读得到 App上《万维钢·精英日课》部分文章后所做的一点笔记和思考。学习是一个系统的过程,思维模型的建立需要相对完整的学习和思考过程。以下观点是在碎片化阅读后总结的一点心得总结。
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计
一条链接即可让黑客跟踪你的位置! | Seeker工具使用
搬运自:冰崖的部落阁(icecliffsnet) 严正声明:本文仅限于技术讨论,严禁用于其他用途。 请遵守相对应法律规则,禁止用作违法途径,出事后果自负! 上次写的防社工文章里边提到的gps定位信息(如何防止自己被社工或人肉) 除了主动收集他人位置信息以外,我们还可以进行被动收集 (没有技术含量) Seeker作为一款高精度地理位置跟踪工具,同时也是社交工程学(社会工程学)爱好者...
作为程序员的我,大学四年一直自学,全靠这些实用工具和学习网站!
我本人因为高中沉迷于爱情,导致学业荒废,后来高考,毫无疑问进入了一所普普通通的大学,实在惭愧...... 我又是那么好强,现在学历不行,没办法改变的事情了,所以,进入大学开始,我就下定决心,一定要让自己掌握更多的技能,尤其选择了计算机这个行业,一定要多学习技术。 在进入大学学习不久后,我就认清了一个现实:我这个大学的整体教学质量和学习风气,真的一言难尽,懂的人自然知道怎么回事? 怎么办?我该如何更好的提升
前端JS初级面试题二 (。•ˇ‸ˇ•。)老铁们!快来瞧瞧自己都会了么
1. 传统事件绑定和符合W3C标准的事件绑定有什么区别? 传统事件绑定 &lt;div onclick=""&gt;123&lt;/div&gt; div1.onclick = function(){}; &lt;button onmouseover=""&gt;&lt;/button&gt; 注意: 如果给同一个元素绑定了两次或多次相同类型的事件,那么后面的绑定会覆盖前面的绑定 (不支持DOM事...
Python学习笔记(语法篇)
本篇博客大部分内容摘自埃里克·马瑟斯所著的《Python编程:从入门到实战》(入门类书籍),采用举例的方式进行知识点提要 关于Python学习书籍推荐文章 《学习Python必备的8本书》 Python语法特点: 通过缩进进行语句组织 不需要变量或参数的声明 冒号 1 变量和简单数据结构 1.1 变量命名 只能包含字母、数字和下划线,且不能以数字打头。 1.2 字符串 在Python中,用引号...
相关热词 c# 识别回车 c#生成条形码ean13 c#子控制器调用父控制器 c# 写大文件 c# 浏览pdf c#获取桌面图标的句柄 c# list反射 c# 句柄 进程 c# 倒计时 线程 c# 窗体背景色
立即提问