Java
文章平均质量分 95
Duing_
菜就要学
展开
-
AJAX异步交互的实现
概念Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。同步和异步:客户端和服务器端相互通信的基础上同步:每次请求后,客户端必须等待服务器端的响应。在等待的期间客户端不能做其他操作。异原创 2020-08-06 15:30:40 · 272 阅读 · 0 评论 -
Listener监听器
概念Web的三大组件之一事件监听机制事件:一件事情事件源:事件发生的地方监听器:一个对象注册监听:将事件、事件源、监听器绑定在一起。当事件源上发生某个事件后,执行监听器代码监听器的基本使用ServletContextListener:监听ServletContext对象的创建和销毁方法:void contextDestroyed(ServletContxtEvent sce):ServletContext对象被销毁之前会调用该方法void contextInitiali原创 2020-08-04 13:05:20 · 131 阅读 · 0 评论 -
Java中的动态代理
概念代理模式:代理对象代理真实对象,达到增强真实对象功能的目的实现方式静态代理:有一个类文件描述代理模式动态代理:在内存中形成代理类动态代理实现步骤:代理对象和真实对象实现相同的接口代理对象 = Proxy.newInstance();使用代理对象来调用方法增强方法增强方式增强参数列表增强返回值类型增强方法体执行逻辑代码:接口public interface SaleComputer { public String sale(dou原创 2020-08-02 20:35:07 · 131 阅读 · 0 评论 -
Filter过滤器
Filter概述生活中的过滤器:净水器,空气净化器原创 2020-08-01 16:50:33 · 104 阅读 · 0 评论 -
JSP、EL、JSTL和MVC架构
今日内容JSP:指令注释内置对象MVC开发模式EL表达式JSTL标签三层架构JSP:指令作用:用于配置JSP页面,导入资源文件格式:<%@ 指令名称 属性名1=属性值1 属性名2=属性值2 … %>分类:page : 配置JSP页面的contentType:等同于response.setContentType()设置响应体的mime类型以及字符集设置当前jsp页面的编码(只能是高级的IDE才能生效,如果使用低级工具,原创 2020-07-31 15:49:36 · 163 阅读 · 0 评论 -
WebMagic爬虫框架
WebMagic架构介绍WebMagic的结构分为Downloader、PageProcessor、Scheduler、Pipeline四大组件,并由Spider将它们彼此组织起来。这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能。WebMagic的设计参考了Scapy,但是实现方式更Java化一些。Spider则将这几个组件组织起来,让它们可以互相交互,流程化的执行,可以认为Spider是一个大的容器,它也是WebMagic逻辑的核心。WebMagic总体架构图如下:WebMag原创 2020-07-20 10:16:50 · 269 阅读 · 0 评论 -
会话技术——Session(附案例源码)
Session概念服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器短的对象(HTTPSession)中Session快速入门获取Session对象:HttpSession session = request.getSession();使用HttpSession对象:Object getAttribute(String name)void setAttribute(String name, Object value)void removeAttribute原创 2020-07-17 18:57:59 · 418 阅读 · 1 评论 -
模拟登陆并爬取教务处信息(附源码)
分析登录请求教务处登录页面输入账号和密码,点击登录浏览器抓取登录的请求信息如下,可以得出点击登录时发送的是Post请求,而且登录时的状态码为200而不是302,说明登录时没有发生重定向,而是直接通过响应传回登录后的页面数据,在通过解析呈现出来请求所带的表单信息如下userName和password携带的是我之前登录输入的用户名和密码经过多次尝试和分析,rnd和code的值是随机的,且对登录没有影响,可以不用管它我尝试用不同的账号和密码登录,发现webfinger的值是固定的us原创 2020-07-14 17:10:57 · 635 阅读 · 1 评论 -
Java网络爬虫(五)——Jsoup解析爬取的数据
Jsoup介绍为什么用Jsoup?我们抓取到页面之后,还需要对页面进行解析。可以使用字符串处理工具解析页面,也可以使用正则表达式,但是这些方法都会带来很大的开发成本,所以我们需要使用一款专门解析html页面的技术。Jsoup介绍Jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。Jsoup的主要功能从一个URL、文件或字符串中解析HTML;使原创 2020-07-13 18:54:32 · 328 阅读 · 0 评论 -
Java网络爬虫(四)——连接池和请求参数配置
连接池如果每次请求都要创建HttpClient,会有频繁创建和销毁的问题,可以使用连接池来解决这个问题。测试以下代码,并断点查看每次获取的HttpClient都是不一样的。public class HttpClientPoolTest { public static void main(String[] args) { //创建连接池管理器 PoolingHttpClientConnectionManager connectionManager = new原创 2020-07-13 13:53:41 · 413 阅读 · 0 评论 -
Java网络爬虫(三)——POST请求
POST请求使用POST访问CSDN首页代码:public class HttpPostTest { public static void main(String[] args) { //创建HttpClient对象 CloseableHttpClient httpClient = HttpClients.createDefault(); //创建HttpPost对象,设置URL访问地址 HttpPost httpPost =原创 2020-07-13 13:17:09 · 1080 阅读 · 0 评论 -
Java网络爬虫(二)——GET请求
HttpClient网络爬虫就是用程序帮助我们访问网络上的资源,我们一直以来都是使用HTTP协议访问互联网的网页,网络爬虫需要编写程序,在这里使用同样的HTTP协议访问网页。这里我们使用Java的HTTP协议客户端 HttpClient这个技术,来实现抓取网页数据。GET请求代码:public class HttpGetTest { public static void main(String[] args) { //创建HttpClient对象 C原创 2020-07-12 20:16:03 · 467 阅读 · 0 评论 -
Java网络爬虫(一)——初识
网络爬虫的概念网络爬虫(Web crawler)也叫做网络机器人,可以代替人们自动地在互联网中进行数据信息的采集与整理。它是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,可以自动采集所有其能够访问到的页面内容,以获取相关数据。从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分。爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。爬虫入门程序环境准备JDK1.8IDEAMave原创 2020-07-12 20:15:23 · 171 阅读 · 0 评论 -
ServletContext学习
ServletContext对象概念:代表整个Web应用,可以和程序的容器(服务器)来通信获取:通过request对象获取:request.getServletContext()通过HttpServlet获取:this.getServletContext()功能:获取MIME类型MIME类型:在互联网通信过程中定义的一种文件数据类型格式:大类型/小类型 text/html image/jpeg获取:String getMimeType(String file)原创 2020-07-11 12:09:13 · 141 阅读 · 0 评论 -
HTTP——Response响应消息
HTTP协议请求消息:客户端发送给服务器的数据数据格式:请求行请求头请求空行请求体响应消息:服务器端发送给客户端的数据数据格式:响应行组成:协议/版本 相应状态码 状态码描述相应状态码:服务器告诉客户端浏览器本次请求和相应的一个状态状态码都是3为数字分类:1**:服务器接收客户端消息,但没有接收完成,等待一段时间后,发送1**多状态码2**:成功,例:2003**:重定向,例:302(重定向),304(访问缓存)4**:客户端错误,例:404(请求路原创 2020-07-10 21:39:47 · 342 阅读 · 0 评论 -
Jsoup——html/xml解析器
概念jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。快速入门步骤:导入Jsoup的jar包获取Document对象获取对应标签Element对象获取数据代码:xml文档<?xml version="1.0" encoding="utf-8" ?><students> <student numb原创 2020-05-30 11:33:47 · 261 阅读 · 0 评论 -
Java反射
反射:框架设计的灵魂框架:半成品软件。可以在框架的基础上进行软件的开发,简化编码。反射:将类的各个组成部分封装为其他对象,这就是反射机制。Java代码在计算机中经历的阶段:三个阶段好处:可以在程序运行过程中,操作这些对象(Field、Method、Construct)可以解耦,提高程序的可扩展性获取字节码Class对象的三种方式Class对象功能:先给出要获取的Class信息public class Person { private String name;原创 2020-05-24 21:26:15 · 160 阅读 · 0 评论 -
Java多线程—线程的创建
多线程概述什么是进程?程序是静止的,运行中的程序就是进程。进程的三个特征:动态性:进程是运行中的程序,要动态的占用内存、CPU和网络等资源。独立性:进程与进程之间是相互独立的,彼此有自己的独立内存区域。并发性:在同一时间内,多任务交替的执行任务。假如CPU是单核,同一个时刻其实内存中只有一个进程在被执行。CPU会分时轮流切换一次为每个进程服务,因为切换的速度非常快,给我们的感觉就是这些进程在同时执行,这就是并发性。并行:同一个时刻有多个任务在执行。什么是线程?线程是属于进程的,一原创 2020-05-21 00:27:10 · 151 阅读 · 0 评论 -
Java学习—Junit测试
测试分类:黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。白盒测试:需要写代码,关注程序具体的执行流程。Junit单元测试Junit使用:(白盒测试)步骤:定义一个测试类(测试用例)建议:测试类名:被测试的类名+Test CalculatorTest包名:xxx.xxx.xx.test cn.itcast.test定义测试方法:可以独立运行建议:方法名:test+测试的方法名 testAdd()返回值:void参数列表:空参给方法原创 2020-05-10 20:12:28 · 269 阅读 · 0 评论 -
Java学习05(泛型)
泛型的概述泛型就是一个标签:<数据类型>泛型可以在编译阶段约束只能操作某种数据类型。注意:1.jdk1.7开始之后,泛型后面的声明可以省略不写。2.泛型和集合都只能支持引用数据类型,不支持基本数据类型。比如< >里面用int就会报错,而用Integer则不会。案例:代码:public class TestDemo01 { public static void main(String[] args) { //未加泛型 Arra原创 2020-05-08 21:21:46 · 195 阅读 · 0 评论 -
Java学习04(多态)
多态多态的形式父类类型 对象名称 = new 子类构造器;接口 对象名称 = new 实现类构造器;父类类型范围 > 子类类型范围多态的概念:同一个类型的对象,执行同一个行为,在不同状态下表现出不同的行为特征。案例:代码:public class Demo01 { public static void main(String[] args) { ...原创 2020-05-04 23:23:45 · 218 阅读 · 0 评论 -
Java学习03(抽象代码块final枚举)
一、静态代码快格式:static{ 内容...}注:必须用static修饰,属于类,会与类一起优先加载,而且自动触发执行一次!作用:静态代码块可以用于在执行类的方法之前进行静态资源的初始化操作。案例:代码:public class TestDemo01 { public static List<String> cards = new ArrayLis...原创 2020-04-28 15:03:25 · 322 阅读 · 0 评论 -
Java学习02(继承)
继承讲解一、继承的概述和格式解释:继承是Java中一般到特殊的关系,是一种子类到福利额的关系。例如:学生类继承了人类,猫类继承了动物类。被继承的类:父类/超类继承父类的类:子类继承的特点:子类继承了一个父类,子类就可以直接得到父类的属性(成员变量)和行为(成员方法)了。继承的作用:可以提高代码的复用,相同代码可以继承在父类中。然后子类通过继承父类,就可以直接使...原创 2020-04-26 20:10:26 · 195 阅读 · 0 评论 -
Java学习01(基础)
基础内容巩固一、规范一个class文件中只能有一个public修饰的类,且该类的名称与class文件相同。二、类的五大成分(五大金刚)成员变量成员方法构造器代码块内部类讲解:public class Study01 { System.out.println("hellowrld!");}代码会报错,原因是中间的语句不是类的五大成分。三、this关键字...原创 2020-04-26 00:47:36 · 149 阅读 · 0 评论