先说点题外话吧,在我刚开始学习爬虫的时候,有一次一个学长给了我一个需求,让我把京东图书的相关信息抓取下来。恩,因为真的是刚开始学习爬虫,并且是用豆瓣练得手,抓取了大概500篇左右的影评吧,然后存放到了mysql中,当时觉得自己厉害的不行,于是轻松的接下了这个需求。。。 然后信心满满的开始干活。。首先查看网页源代码。。。???我需要的东西源代码里面没有!!!然后去问了学长。学长给我说,这是AJAX产生的数据,大概听完之后我就去查了资料。发现网上大片的资料都在阐述一个道理,对于动态页面,使用PhantomJs进行抓取,但是这样效率很低。作为一个优秀的程序员,当时看见效率很低这四个字,那在我心里是绝对不能被允许的,所以我就采用了抓包的方式,查看AJAX数据所在的URL,对于这个模拟浏览器的方法也就一直搁置到现在。 但是既然知道了这个东西,哪有不去学习的道理。所以我抽出了一点时间看了一下关于Java方面使用PhantomJs的资料,现在分享给大家。 对了,其实做网络爬虫,页面上90%的数据都可以使用抓包进行获取。所以我还是鼓励大家直接请求自己所需数据所在的URL 继续阅读 >>


董恒毅 17/10/10 22:29:57
介绍Gson是目前被广泛使用的一个JSON库,它由Google公司发布,完全开放源代码,主要用途为序列化Java对象为JSON字符串,或反序列化JSON字符串成Java对象。当然,虽然它由Java编写,但它可以被JVM平台下的一切语言使用,以下以Scala作为描述语言,简单的说明如何使用Gso安装GsonGson是一个开放源代码的项目,它的源代码可以在项目的github仓库找到,如果你并不关心它的源 作者:hepangda 发表于 2017/09/26 22:31:20 原文链接 https://blog.csdn.net/hepangda/article/details/78107818 阅读:142 继续阅读 >>


娄泽豪 17/09/26 22:31:20
这几天开始和社会董还有小孟愿开始写小组的图书管理系统,将在此期间遇到的一些问题和学到的一些知识总结在博客里。 这篇博客要总结的就是在WEB项目中用到的很重要的一种数据库设计模式DAO。 DAO是什么 DAO是WEB项目里面的数据层,主要负责为其他各层(MVC(Model View Controller))提供数据。DAO层里封装了对数据库的各种操作的代码。 为什么要使用DAO 我们在写WEB项目时,经常会有这样的需求:需要从数据库拿到数据,然后再展示再前端页面上,这也就说明我们需要在JSP页面中使用JDBC连接数据库进行各种操作。且不说在JSP页面上操作数据库有多繁复,单是大段大段的JAVA代码就已经使得JSP页面变得很复杂了。JSP页面应该专注于数据的展示结果,而非数据的取得过程。所以我们使用DAO设计模式,提供一组通用的数据库操作方法,简化代码,增强程序的可移植性。 DAO层的组成 DAO层主要由五个部分组成:DBUtil(数据库连接类),VO(valueObject值对象),IDAO(DAO接口),DAOImpl(DAO实现类) 继续阅读 >>


祝一迪 17/07/25 15:44:03
什么是标准标签? 标准标签有什么作用? 简明扼要的来说, 标准标签就是一些以”jsp:”作为前置的标签, 主要作用是为了减少JSP中的Java代码. 1. <jsp:include> <jsp:forward>标签 <jsp:include> 在前面曾经提到过include指示元素, 可以在JSP转译的时候将其他的JSP页面包括合并进来一起转译, 但是这样include进来的JSP页面是静态的, 我们无法给包括进来的JSP页面传递参数或对它进行动态调整, 只是将多个JSP页面合并成一个JSP页面再进行转译, 结果也只会生成一个Servlet. 但是使用标准标签<jsp:include>可以在运行时动态地将其他的JSP页面包括进来, 并传递参数等. 被包含的JSP页面也会自己独立生成一个Servlet类. <jsp:include>在使用过程中实质上发生了什么呢? 前面在Servlet里面提到过请求的包含(include())与转发(forward()), 其实, 在JSP转 继续阅读 >>


祝一迪 17/06/20 11:11:22
前面总结完了Servlet相关的基础知识, 现在来学习总结一下JSP. 1. JSP简介 JSP全称Java Server Pages, 是一种动态网页开发技术. JSP与Servlet是一体两面的, 因为JSP网页最终会被容器转译为Servlet源代码, 然后自动编译为.class文件, 再载入.class文件, 最后生成Servlet对象. 下面我们以一个Hello World的例子, 来分析以下JSP和Servlet的关系, 以及JSP的生命周期. 例: 用JSP输出Hello Word, 并分析转译的Servlet代码. JSP代码如下: <html> <head> <title>Hello JSP</title> </head> <boay> <h1>Hello World!</h1> </body> </html> 这就是最简单地JSP的一 继续阅读 >>


祝一迪 17/06/12 22:55:19
一、JSON的简单介绍 JSON(JavaScript Object Notation):JS对象表示法 是轻量级的文本数据交换格式;独立于语言,JSON解析器和库支持多种编程语言 json文件的文件类型是”.json” 语法规则: 数据在 名称/值对 中 名称在双引号中,后面写一个冒号,然后是值 值可以是:数字(整数或者浮点数)、string(在双引号中)、逻辑值(true/false)、数组(在[]中)、对象(在花括号中)、null,这些结构可以嵌套。 eg.数组: { "people": [ {"firstname":"jr","lastname":"smith"}, {"firstname":"palu","lastname":"george"} ] } 对象people包含两个对象的数组,每个对象是某人的姓和名,people[0].lastname返回smith 数 继续阅读 >>


杜肖孟 17/06/12 19:49:44
过滤器是什么? 抽象点来说, 就是介于Servlet之间的独立的元件, 可以随时加入到应用程序之中, 也可以随时移除. 具体点来说, 比如针对某些特定的页面, 只有特定的用户才能浏览, 这个时候我们就希望能把所有登录的用户进行过滤, 只给一些用户访问的权限, 这就可以在Servlet之前实现一个用户验证的过滤器. 过滤器通常搭配封装器来使用. 关于封装器可分为请求封装器和响应封装器, 具体概念及用法将在下面介绍. 1. 实现与设置过滤器 在Servlet中要实现过滤器, 必须要实现Filter接口, 并使用@WebFilter标注或在web.xml中定义过滤器, 让容器知道应该加载哪些过滤器类. Filter接口有三个需要实现的方法:init(), doFilter(), destroy(), Filter接口的代码如下: public interface Filter{ public void init(FilterConfig filterConfig) throws ServletException; //Filt 继续阅读 >>


祝一迪 17/06/07 21:29:11
Web容器管理Servlet/JSP相关的对象生命周期, 若对HttpSession对象/ServletContext对象在生成, 销毁或相关属性设置(或改变)发生的时机感兴趣, 则可以实现对应的监听器(Listener). 1. ServletContext事件 监听器 与ServletContext事件相关的监听器有: 生命周期监听器: ServletContextListener 属性改变监听器: ServletContextAttributeListener (1) ServletContextListener 1> ServletContextListener概述: ServletContexListener接口是继承于EventListener接口, 主要用于知道Web应用程序何时已经初始化或即将结束销毁. 其中实现了contextInitialized()方法和contextDestroyed()方法, 分别在应用程序初始化后或即将结束前调用这两个方法.ServletContextListener接口的实现代 继续阅读 >>


祝一迪 17/06/03 15:16:59
一.关于Servlet的一些基本概念 -每个Servlet都必须由Web容器读取Servlet设置信息(标注或web.xml),初始化等,才能成为一个真正的Servlet. 1.ServletConfig:每个Servlet设置的代表对象.对于每个Servlet的设置信息,Web容器都会为其生成一个ServletConfig作为代表对象. 2.ServletContext:代表整个Web应用程序的对象. (1)Servlet接口上定义的与生命周期及请求服务相关的三个方法 1>init():对Servlet的一些初始化工作; 2>service():调用Servlet实例的service()方法进行服务; 3>destory():对Servlet的一些善后工作. (2)Servlet的生命周期 1>Web容器启动后,读入Servlet设置信息,产生一个ServletConfig对象,并作为参数传入init(); 2>初始化完成后,请求来临,产生HttpRequest对象和HttpResponse对象,并传入ser 继续阅读 >>


祝一迪 17/05/24 17:29:40
最近学习了json for modern c++的使用,在此总结一些常用功能使用方法。 老规矩,还是先简单介绍一下什么是json吧。 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。 今天介绍的json版本是在c++下使用的,是一个开源项目。 GitHub开源项的地址:https://github.com/nlohmann/json json for modern c++是一个德国大牛nlohmann写的,该版本的json有以下特点: 1.直观的语法。 2.整个代码由一个头文件组成json.hpp,没有子项目,没有依赖关系,没有复杂的构建系统,使用起来非常方便。 3.使用c++11标准编写。 继续阅读 >>


冯鑫 17/04/30 23:33:35