【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (第三节)(2)

最后

即使是面试跳槽,那也是一个学习的过程。只有全面的复习,才能让我们更好的充实自己,武装自己,为自己的面试之路不再坎坷!今天就给大家分享一个Github上全面的Java面试题大全,就是这份面试大全助我拿下大厂Offer,月薪提至30K!

我也是第一时间分享出来给大家,希望可以帮助大家都能去往自己心仪的大厂!为金三银四做准备!
一共有20个知识点专题,分别是:

Dubbo面试专题

JVM面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Java并发面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Kafka面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MongDB面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MyBatis面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MySQL面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Netty面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

RabbitMQ面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Redis面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Spring Cloud面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

SpringBoot面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

zookeeper面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

常见面试算法题汇总专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

计算机网络基础专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

设计模式专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 接下来,编写移动图片的方法,为了控制下一张和上一张,我们定义一个索引变量index就可以啦。

    var index = 0;

    获取图片的宽度的数量

    var imgwidth = $(‘.banner .content ul li’).width(); //获取轮播图片的宽度

    var len = $(‘.banner .content ul li’).length - 2//获取总共的图片数量

    移动图片的方法

    function movePicture(){

    $(‘.banner .content ul’).animate({‘margin-left’:-imgwidth * (index+1)},1000,function(){

    if(index == len){

    $(this).css(‘masrgin-left’,-imgwidth);

    index = 0;

    }

    if(index == -1){

    $(this).css(‘margin-left’,-imgwidth * len);

    index = len - 1;

    }

    });

    }

    最后,给按钮绑定事件:

    rightBtn.on(‘click’,function(){

    index ++;

    movePicture();

    });

    leftBtn.on(‘click’,function(){

    index --;

    movePicture();

    });

    3.6.7 按钮的节流控制

    接下来要做一个简单的前台节流,意思就是说,如果有用户闲得无聊,在那拼命的点击下一张的按钮,那么每一次点击都会触发movePicture函数,这个时候,你就会看到图片在那乱跳。

    所以,为了避免这种用户的操作,我们需要用js来做一个节流,额,好像是叫节流。我记不太清了。意思就是说,比如你在一秒钟内连续点击了8次,那么我就认为这8次中只有1次是有效的,其他的点击都是误操作。

    这样的话,无论你怎么狂点鼠标,我都只调用一次movePicture函数。

    首先,我们定义一个空的定时器。

    var timer = null;

    思路为:

    每当我触发按钮的点击事件,就把当前的定时器timer清零,然后又马上给他设置定时内容,比如500毫秒后才进行移动操作。也就是说,如果你狂点鼠标,那么定时器就会被马上清零,然后进入定时器的等待状态。必须要等你满了500毫秒,才进行下面的操作。

    原理就是这么简单,这个方式也经常用于登陆按钮上。比如,当你网速很慢的时候,点击登陆,网页没有立即给你跳转页面。有些用户闲着无聊,就在那狂点鼠标,不知道你有没有这么做过呢?

    如果没有做好节流,那么就会有大量的请求传递到服务器,会给服务器造成很大的压力。

    差不多就是这个意思,上代码:

    rightBtn.on(‘click’,function(){

    clearTimeout(timer); //定时器清零

    timer = setTimeout(function(){

    index ++;

    movePicture();

    },500);

    });

    leftBtn.on(‘click’,function(){

    clearTimeout(timer); //定时器清零

    timer = setTimeout(function(){

    index --;

    movePicture();

    },500);

    });

    不论我鼠标怎么狂点,它每次都只移动一张图片。

    好了,轮播图差不多就聊到这里吧,你可以自己去慢慢完善,时间关系我就不扩展太多了。剩下的就交给你自己去玩耍了,比如,我能不能做一个定时轮播呢,每个5秒钟就自动切换到下一张。

    我就不写了。

    3.6.8 整合资源文件

    现在,我们把这个已经做好的banner区域搬到项目里。

    在WebContent目录下新增一个static文件夹,这里存放各种静态资源文件。

    比如img,js,css等

    因为刚才的页面中用到了百度资源库里的jQuery文件:

    http://libs.baidu.com/jquery/2.0.0/jquery.min.js

    现在我们直接将这个url用浏览器打开。

    全部复制。

    然后在js文件夹中新建一个jQuery.js文件。

    现在,将刚才复制的内容原封不动地拷贝进去。

    ctrl + s 保存。

    OK,jQuery文件已经有了,接下来,我们将素材图片拷贝到img文件夹中。这样,资源文件就全部准备好了。

    3.6.7 引用资源文件

    在整合好资源文件后,如何将这些资源文件导入我们的index.jsp呢?这是一个问题。

    我们将html代码和css样式拷贝到index.jsp中,看看效果。

    图片都没有显示出来。

    那么,如何改变img的src,使他能够成功引到/Article/WebContent/static/img 里面的图片呢?

    我提供一种比较方便的办法,就是在jsp页面中写Java代码,让Java来获取项目的根路径,然后通过绝对路径的方式引入资源文件。

    我们在jsp页面的开头加上以下代码:

    <%

    String path = request.getContextPath();

    int port = request.getServerPort();

    String basePath = null;

    if(port==80){

    basePath = request.getScheme()+“😕/”+request.getServerName()+path;

    }else{

    basePath = request.getScheme()+“😕/”+request.getServerName()+“:”+request.getServerPort()+path;

    }

    request.setAttribute(“basePath”, basePath);

    %>

    request就是所谓的JSP九大隐式对象中的一员,其实JSP就是Servlet,你可能学过Servlet,那么应该很清楚request是什么意思。以后我会单独来讲解一下关于JSP的东西,现在先继续往下说吧。

    request.setAttribute(“basePath”, basePath) 表示将得到的basePath(项目根路径)存放到request作用域中,你可以把request看做一个HashMap,或者一个JSON对象,都可以。

    反正,这句话一写,就说明request作用域中已经有了basePath,我们在JSP页面的其他地方就可以获取到了。

    • 最后

      很多程序员,整天沉浸在业务代码的 CRUD 中,业务中没有大量数据做并发,缺少实战经验,对并发仅仅停留在了解,做不到精通,所以总是与大厂擦肩而过。

      我把私藏的这套并发体系的笔记和思维脑图分享出来,理论知识与项目实战的结合,我觉得只要你肯花时间用心学完这些,一定可以快速掌握并发编程。

      不管是查缺补漏还是深度学习都能有非常不错的成效,需要的话记得帮忙点个赞支持一下

      整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

      本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

      需要这份系统化的资料的朋友,可以点击这里获取

      最后

      很多程序员,整天沉浸在业务代码的 CRUD 中,业务中没有大量数据做并发,缺少实战经验,对并发仅仅停留在了解,做不到精通,所以总是与大厂擦肩而过。

      我把私藏的这套并发体系的笔记和思维脑图分享出来,理论知识与项目实战的结合,我觉得只要你肯花时间用心学完这些,一定可以快速掌握并发编程。

      不管是查缺补漏还是深度学习都能有非常不错的成效,需要的话记得帮忙点个赞支持一下

      整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

      本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

      需要这份系统化的资料的朋友,可以点击这里获取

    • 7
      点赞
    • 20
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值