Fork me on GitHub
To the moon

A Coder,a Programmer,a Developer


  • Home

  • Tags

  • Categories

  • Archives

  • Search

Pictures play in turn

Posted on 2018-07-06 | Edited on 2023-05-09 | In imooc

图片轮播效果

效果图:

1

说明:

  1. 三张背景图片采用的一张出现一张消失,还有上下替换或左右替换的方式,本次未采用
  2. 背景图片采用2秒一次自动循环轮播
  3. 图片两侧采用“上一页”和“下一页”的切换按钮
  4. 图片右下角采用圆点定位

HTML和CSS部分

  1. 将三张图片重叠放置,banner-slide绝对定位,banner相对定位

  2. 使用slide-active并设置display实现隐/现

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <!--html-->
    <div class="banner" id="banner">
    <a href="">
    <div class="banner-slide slide1 slide-active"></div>
    </a>
    <a href="">
    <div class="banner-slide slide2"></div>
    </a>
    <a href="">
    <div class="banner-slide slide3"></div>
    </a>
    </div>


    <!--css-->
    .banner{
    width: 1200px;
    height:460px;
    position: relative;
    overflow: hidden;
    }
    .banner-slide{
    width: 1200px;
    height:460px;
    position: absolute;
    background-repeat: no-repeat;
    display: none;
    }
    .slide-active{
    display: block;
    }
Read more »

Note for Computer Network 2

Posted on 2018-07-05 | Edited on 2023-05-09 | In notes

Note for Computer Network 2

副标题:阅读《网络是怎么连接的(户根勤)》读书笔记2

生成 HTTP 请求消息

动作:对URL 进行解析
效果:浏览器确定了 Web 服务器和文件名
后续:根据这些信息来生成 HTTP 请求消息

1

  • 消息头存放“请求行没说清楚的”额外信息,消息头的规格中定义了很多项目,如日期、客户端支持的数据类型、语言、压缩格式、客户端和服务器的软件名称和版本、数据有效期和最后更新时间等。比如Date、Pragma、Cache-control、Connection、Transfer-Encoding、Via等,参考HTTP头字段-wiki百科
  • 写完消息头之后,还需要添加一个完全没有内容的空行,然后写上需要发送的数据(即消息体)

2

  • 响应消息与请求消息差别仅在第一行,内容为状态码和响应短语,用来表示请求的执行结果是成功还是出错。
状态码 含义
1xx 告知请求的处理进度和情况
2xx 成功
3xx 表示需要进一步操作
4xx 客户端错误
5xx 服务器错误
  • 返回响应消息之后,浏览器会将数据提取出来并显示在屏幕上,我们就能够看到网页的样子了。如果网页的内容只有文字,那么到这里就全部处理完毕了,但如果网页中还包括图片等资源,则还有下文
  • 当网页中包含图片时,会在网页中的相应位置嵌入表示图片文件的标签的控制信息。浏览器会在显示文字时搜索相应的标签,当遇到图片相关的标签时,会在屏幕上留出用来显示图片的空间,然后再次访问 Web服务器,按照标签中指定的文件名向Web服务器请求获取相应的图片并显示在预留的空间中
    [扩展思考]就是因为图文的异步,所以可以考虑采用多线程的方式,先刷出文字,后刷出图片,提升浏览器阅读体验
  • 由于每条请求消息中只能写 1 个 URI,所以每次只能获取 1 个文件,如果需要获取多个文件,必须对每个文件单独发送 1 条请求。即,3张图片==额外3次request
Read more »

A simple demo _Web page layout

Posted on 2018-07-05 | Edited on 2023-05-09 | In imooc

javaweb之网站布局demo

demo课程来源:慕课网javaweb课程
分析:实现了静态网页的展示效果。
效果图:
1
2
3
4
add

绘制概述:

  1. 将备用图片新建image文件夹,与html和css文件置于同一目录下
    5
  2. 将整个网页6个区域,找6个盒子对应
    • 标题及导航区
    • 横幅栏
    • about区
    • picture-word区
    • gallery区
    • footer区
  3. 按照不同区特点,设计css样式,主要涉及知识点:盒子模型、定位、浮动、遮罩、hover等

步骤详解

一、标题及导航区

6

  • html指向外部css文件
  • header由logo及nav两部分构成
  • nav细分出六个小导航
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!--html文件-->
<head>
<meta charset="utf-8">
<title>Career Builder</title>
<link rel="stylesheet" type="text/css" href="index.css">
</head>
<div class="header">
<div class="logo"><img src="images/logo.png"></div>
<div class="nav">
<div class="nav-li">HOME</div>
<div class="nav-li">ABOUT</div>
<div class="nav-li">GALLERY</div>
<div class="nav-li">FACULTY</div>
<div class="nav-li">EVENTS</div>
<div class="nav-li">CONTACT</div>
</div>
</div>
  • 消除浏览器默认边距,设置微软雅黑字体
  • logo设置左浮动
  • nav设置右浮动
  • nav-li设置左浮动,同时调整间距,垂直居中对齐
  • nav-li设置hover效果,悬浮时nav-li块出现黑色背景效果,鼠标变为“小手”效果
Read more »

notes_for_HeadFirstServletsAndJsp5

Posted on 2018-06-08 | Edited on 2023-05-09 | In notes

Head First Servlets&JSP 读书笔记_5

如何将某些参数写在DD中,而非写死在类中

初版解决办法(以Email地址为例):

1
2
3
4
5
6
7
8
9
10
//DD中:
<servlet>
...

<init-param>
<param-name>adminEmail</param-name>
<param-value>***@163.com</param-value>
</init-param>

</servlet>

同时

1
2
//servlet中:
getServletConfig().getInitParameter("adminEmail");
  • 一般Servlet都是继承自HttpServlet,而HttpServlet是GenericServlet的子类。getInitParameter()方法来自于GenericServlet,所以Servlet可以调用此方法去获取web.xml配置文件中的配置信息。
  • 容器初始化一个servlet时,会为这个servlet建一个唯一的ServletConfig。其出场顺序为:先由容器加载servlet类,然后init()初始化,初始化完成前得到了ServletConfig对象,同时可以调用getInitParameter方法,从DD中读取初始化参数,经由ServletConfig传递给init()方法。
  • 划重点:先 init(),后得到ServletConfig,同时使用初始化参数(只能读一次)!可参考Head First Servlets&JSP 读书笔记_3中关于init()方法的讲解
  • 以上的代码只是专属于此Servlet的初始化参数,无法全局使用;若采取保存下来的方式,又必须使此Servlet最早先运行,这么一来可维护性极差
Read more »

notes_for_HeadFirstServletsAndJsp4

Posted on 2018-06-02 | Edited on 2023-05-09 | In notes

Head First Servlets&JSP 读书笔记_4

HttpServletRequest接口扩展了ServletRequest接口,发生了什么?

与上同理的还有HttpServletResponse接口扩展了ServletResponse接口。以ServletRequest接口为例解释如下:

avax.servlet Interface ServletRequest
Defines an object to provide client request information to a servlet. The servlet container creates a ServletRequest object and passes it as an argument to the servlet’s service method.
[扩展译]当Servlet容器接收到客户端要求访问特定Servlet的请求时,容器先解析客户端的原始请求数据,把它包装成一个ServletRequest对象。当容器调用Servlet对象的service()方法时,就可以把ServletRequest对象呢作为参数传给service()方法。

A ServletRequest object provides data including parameter name and values, attributes, and an input stream. Interfaces that extend ServletRequest can provide additional protocol-specific data (for example, HTTP data is provided by HttpServletRequest.
[译]ServletRequest对象提供参数名、参数值、属性、输入流等数据。其扩展接口(比如HttpServletRequest会提供Http数据)会格外增加特定的协议数据。

Http协议数据主要有如下:

method description
getContextPath():String Returns the portion of the request URI that indicates the context of the request.[译]获得Request中传入的URI部分(注:URI标记了资源,未给出资源地址,故只是URL的一部分,参考:Web基础-Uri跟Url的区别)
getCookies():Cookie[] Returns an array containing all of the Cookie objects the client sent with this request.[译]获得Request相关的cookie数组
getHeader(String name):String Returns the value of the specified request header as a String.[译]获得客户的平台和浏览信息
getSession():HttpSession Returns the current session associated with this request, or if the request does not have a session, creates one.[译]返回客户相关的Session会话
getInputStream():ServletInputStream Retrieves the body of the request as binary data using a ServletInputStream[译]返回请求体中的二进制内容(请求体若要处理计算机驱动,可能包含二进制)[注]此为ServletRequest的方法
… …
其他参数参考:Servlet技术浅析(三)之—–ServletRequest接口和HttpServletRequest接口
Read more »

Set Character utf8

Posted on 2018-05-30 | Edited on 2023-05-09 | In debug

MySQL修改默认字符集为utf8的方法安装MySQL默认是latin1,而不是utf8,所以最好在本地修改为utf8格式,以下是具体方法 。 在MySQL下输入: mysql> show variables like 'character%'; 检查各项是否为ut ...

Read more »

notes for statistical learning 1

Posted on 2018-05-29 | Edited on 2023-05-09 | In notes

统计学习方法入门学习笔记1

名词解释

  • 统计学习:即统计机器学习,目的是对数据进行预测和分析;以方法为中心,统计学习方法1.构建模型2.应用模型进行预测和分析;系统通过数据及统计方法提高系统性能的机器学习,即是统计学习。
  • 统计学习的前提:同类数据具有一定的统计规律性。
  • 统计学习三要素:模型,策略(模型选择的准则),算法(求解最优模型的方法)。
  • 监督学习:从training data出发,由算法实现最优模型的选取,使它对training data和test data在给定评价准则下有最优的预测(假设两种 data独立同分布)。学习一个由输入到输出的映射,这一映射由模型来表示。换句话说,学习的目的就在于找到最好的这样的模型。由人工给出训练集,所以是监督学习。
  • 模型f(X):属于由输入空间到输出空间的映射的集合,此集合就是假设空间。模型一般由P(Y|X)或Y=f(X)表示,前者是条件概率分布,后者是决策函数。

    决策函数:非概率模型,类似y=f(x)即Label=f(Features),

    1
    2
    3
    def classify(features):
    # do some logic
    return label
  • 假设空间:假设‘要学习的模型属于某个函数’的集合,是理论上所有可能属性值构成的集合空间,一般有无穷多个。
Read more »

notes for Shell 1

Posted on 2018-05-17 | Edited on 2023-05-09 | In notes

Shell入门知识1

学习链接

Shell教程

名词解释

  • Shell:一种应用程序,用户通过这个界面访问OS内核的服务。
  • Shell脚本(shell script):A shell script is a text file containing shell commands. 为shell编写的脚本程序。一般来说的shell编程都是指shell脚本编程。
  • 脚本语言:短小的,用来让计算机自动化完成一系列工作的程序,这段程序可以用文本编辑器修改,不需要编译,通常是解释运行的。

干货正文

Shell脚本示例

1
2
#!/bin/bash
echo "Hello World !"

Shell变量

与C语言类似的规范,但:

  1. 变量名和等号之间不能有空格

    1
    my_name="hahajun"
  2. 使用一个定义过的变量,只要在变量名前面加美元符号即可,花括号建议 添加,不加亦可。二次赋值时可不加美元符号,使用时必加。

    1
    2
    3
    echo $my_name
    echo ${my_name}
    my_name="dafeige"
  3. readonly修饰只读变量

    1
    2
    3
    #!/bin/bash
    myurl="http://likehui.fun"
    readonly myurl
  4. 删除变量

    1
    2
    3
    #!/bin/bash
    myurl="http://likehui.fun"
    unset myurl
Read more »

Multithread and ThreadPool

Posted on 2018-05-17 | Edited on 2023-05-09 | In notes

多线程与线程池

参考博客 :孙福生简书,码农翻身

名词解释

  • 进程(process):计算机已运行程序的实体。程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。用户下达运行程序的命令后,就会产生进程。同一程序可产生多个进程(一对多关系),以允许同时有多位用户运行同一程序,却不会相冲突。进程是拥有资源的基本单位。进程需要一些资源才能完成工作,如CPU使用时间、存储器、文件以及I/O设备,且为依序逐一进行,也就是每个CPU核心任何时间内仅能运行一项进程。进程之间是资源隔离的,如果在进程间共享内容/消息传递代价较大。
  • 线程:进程中负责程序执行的执行单元,线程是独立调度(CPU调度)和分派的基本单位,OS做调度时处理的是线程。一个进程中至少有一个线程,每个线程执行的都是进程代码中的某个片段。每个线程都拥有单独的栈内容来做存储本地数据。
  • Java有没有多进程编程?否!java程序运行在JVM中,JVM本身就是java.exe运行起来,所以对OS而言,JVM是一个进程,其中无法进行多进程编程。
  • 多线程:多条线程同时存在,例如写word时,一边输入一边自动保存,就需要两条线程来分别完成。关键技术:线程间通信,线程间共用资源。
  • 线程池:一种线程使用模式。使用少量线程并让线程保持忙碌。以避免每个用户的请求都反复创建线程的开销。当线程池的线程刚创建时,让他们进入阻塞状态,等到任务来了唤醒即可。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。

有关线程你该知道的

创建线程的两种方式:

  1. 继承Thread类,扩展线程;
  2. 实现Runnable接口,java不支持多类继承,所以要继承其他类时调用Runnable接口更好。

    具体代码及解释参考文首孙富生简书链接。

Thread类中的start()和run()方法区别

  • 调用run()方法,用当前线程去执行一个普通方法,并没有创建新线程;
  • 调用start()方法才会启动新线程,该方法会做一些准备工作:设置好这个线程的上下文,比如这个线程的栈(用于函数调用),线程的状态,这个线程的PC(Program Counter)等等一系列信息以后,这个线程才可以被调度,一旦被调度,就会执行那个run()方法了。
Read more »

notes_for_HeadFirstServletsAndJsp3

Posted on 2018-05-14 | Edited on 2023-05-09 | In notes

Head First Servlets&JSP 读书笔记_3

名词解释

  • J2EE:Java 2 Enterprise Edition,包含了Web容器和EJB(Enterprise JavaBean)容器,而tomcat只是一种Web容器,不是完整的J2EE应用服务器

  • 独立的EJB容器?独立的EJB容器已经过时,目前所有的EJB容器都作为完整J2EE的一部分

  • POJO:Plain Old Java Object,普通的java对象。与JavaBean的区别是,POJO可以有属性和getter/setter方法,可以有简单的运算属性,但不允许有业务方法和connection之类方法

  • scriptlet代码:

    In JavaServer Pages (JSP) technology, a scriptlet is a piece of Java-code embedded in the HTML-like JSP code. The scriptlet is everything inside the <% %> tags. Between these the user can add any valid Scriptlet i.e. any valid Java Code.
    [译]JSP中的scriptlet是指在类HTML的JSP中的标准java代码段,使用”<% %>”的格式。

  • 请求分派机制:容器机制,容器管理的一个组件调用另一个组件

web与MVC

[理解]MVC:将Servlet中做业务逻辑的功能(查询DB,插入DB,把HTML输出到响应流返回客户)搬到业务层和持久层。业务逻辑本身应该作为一个可重用的Java类,让业务逻辑根本不知道有表现的存在。

  1. 原本Servlet完成的输出HTML的工作,现在Servlet将请求转发给适当的JSP,再由JSP建立响应HTML,并将其返回。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //用ssm的controller凑合理解一下。。
    //从这个url(admin_category_list)进来
    @RequestMapping("admin_category_list")
    public String list(Model model,Page page) {
    List<Category> cs=categoryService.list(page);
    int total=categoryService.total();
    page.setTotal(total);
    model.addAttribute("cs",cs);
    model.addAttribute("page",page);
    //视图跳转到listCategory.jsp文件
    return "admin/listCategory";
    }
  2. 功能分隔:

    • 视图:负责表示方面。它从控制器得到模型的状态。另外视图还要获得用户的输入,并交给控制器。
    • 控制器:从请求获得用户输入,并明确这些输入对模型有什么影响。告诉模型自行更新,并且让视图(JSP)能得到新的模型状态。
    • 模型:包含具体的业务逻辑和状态。即模型知道用什么规则来得到和更新状态。购物车的内容(和处理购物车内容的规则)就属于MVC中的模型。系统中只有这部分与数据库通信(不过它可能会使用另一个对象完成具体的数据库通信,但这种模式以后再讲)。
Read more »
1…131415

Harrison Lee / Email (harrisonli60@163.com)

It is never too late to learn a new skill, even a challenging one.

150 posts
21 categories
32 tags
© 2025 Harrison Lee / Email (harrisonli60@163.com)
Powered by Hexo v6.3.0
|
Theme – NexT.Mist v7.0.0
|