02 2018 档案
摘要:类加载器 反射 获取字节码对象的3种方式中的第一个就是传说中的反射。 1、基本使用 2、直接使用空参构造,直接建立对象 3、获取私有(加上Declared字段)构造 4、获取/设置类内字段的值 5、获取类内方法并执行 6、跳过集合的泛型 反射的作用——注册JDBC驱动 面向接口编程 最大的作用:解耦
阅读全文
摘要:面向切面编程 AOP思想:将横向重复代码,纵向抽取出来 AOP体现——Filter AOP体现——拦截器 AOP体现——动态代理 Spring中实现AOP思想 原理:Spring可以为容器中管理的对象生成代理对象 代理分为动态代理和cglib代理: 动态代理(优先) 被代理对象必须要实现接口,才能产
阅读全文
摘要:使用注解代替XML配置文件 1、导包 spring-aop.jar 2、为主配置文件引入新的命名空间(约束) 3、开启使用注解代替配置文件 4、在类中使用注解完成配置 1)将对象注册到容器 相当于Xml配置文件中的 单例与多例的区别 singleton:单例(放在容器中) prototype:你用的
阅读全文
摘要:Spring简介 spring是一站式框架;正是因为spring框架性质是属于容器性质的,容器中装什么对象就有什么功能,所以可以一站式,不仅不排斥其他框架,还能帮其他框架管理对象。 aop支持 ioc思想 spring jdbc aop 事务 junit 测试支持 Spring的搭建 1、导包 co
阅读全文
摘要:设置全局的异常 自定义拦截器 interceptor配置文件 单独为某个action设置指定的拦截器 注:拦截器无法拦截直接访问jsp,htm等页面 定义全局结果集 判断父界面是否在框架中,不在的话跳转到login.jsp
阅读全文
摘要:一、OGNL表达式 OGNL:对象视图导航语言. ${user.addr.name} 这种写法就叫对象视图导航. OGNL不仅仅可以视图导航而且还支持比EL表达式更加丰富的功能. 语法: 二、OGNL表达式与Struts2结合 1、三种接收参数的原理 2、获取参数 3、查找顺序
阅读全文
摘要:一、结果跳转方式 1)转发(默认) 2)重定向 3)转发到Action 4)重定向到Action 二、访问servlet的API 注:域对象实际上就是一个Map 获取这些对象的方法 方法一:通过ActionContext(建议,只有它是获取的域对象:字典形式) 获取方法 方法二:通过ServletA
阅读全文
摘要:一、基本使用 1、导包 2、书写Action类 POJO:普通java类(不继承,不实现) 代码侵入性 低:没有约束,自由 3、书写src/struts.xml配置文件 4、将struts2核心过滤器配置到web.xml 注:3.5版本后没有ng 5、测试 二、Struts2访问流程 Struts的
阅读全文
摘要:一、通过oid查询 二、HQL查询 1、基本查询 2、条件查询 3、排序 4、分页查询 5、聚合查询 6、投影查询 7、多表查询 SQL的多表查询 HQL的多表查询(一般不用,还不如用原生SQL呢) 1、内连接 [Customer [cust_id=1, cust_name=鑫哥论文], LinkM
阅读全文
摘要:一、一对多关系 表中的表达 实体中的表达 ORM元数据配置 1)一对多配置 2)多对一配置 操作关联属性 1、添加客户,添加联系方式 2、只添加联系人 3、清除某个联系人的外键关联 4、直接删除联系人 级联操作 元数据配置文件 结论: 简化操作.一定要用save-update,不建议使用delete
阅读全文
摘要:一、hibernate中的对象状态 hibernate中的对象分为三种状态 瞬时状态:没有id,没有在session缓存中 持久化状态:有id(有与数据库中对应的id),在session缓存中 游离|托管状态:有id,没有在session缓存中 1、save方法 save方法实际上并不是保存,而是执
阅读全文
摘要:Hibernate框架 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 1、
阅读全文
摘要:最大的作用:解耦(少修改Java代码,多修改配置文件) 配置文件+反射+接口 来实现
阅读全文
摘要:HTML 文件上传(普通版) 文件上传(缓冲区版)
阅读全文
摘要:1、引入JQuery插件(依赖JQuery) 2、定义校验规则 键是标签的名字 3、定义错误标签样式 插件会自动寻找第一个匹配name=“xxx”的标签,在它后面添加一个错误标签(class="error") 所以单选框会出现错误,所以要在你想要在的位置加上如下代码: 4、自定义校验规则
阅读全文
摘要:Ajax简介 同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待 卡死状态 异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随 意做其他事情,不会被卡死 Ajax的运行原理 页面发起请求,会将请求发送给浏览器内核中的Ajax引擎,Ajax引擎会提交请求
阅读全文
摘要:EL技术 EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL出现的目的是要替代jsp页面中脚本的编写。 EL最主要的作用就是从域中取出数据,格式${EL表达式} EL获得pageContext域中的值:${pageScope.key}; EL获得requ
阅读全文
摘要:一、JSP脚本和注释 JSP脚本 1)内嵌Java代码 <%java代码%> // 内部的java代码翻译到service方法的内部 2)直接输出到页面上 <%=java变量或表达式> // 会被翻译成service方法内部out.print() 3)设置Servlet成员内容 <%!java代码%
阅读全文
摘要:会话技术 因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并不知道该客户端是谁,所以需要会话技术识别客户端的状态。会话技术是帮助服务器记住客户端状态(区分不同的客户端) 从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话。会话技术就是记录这次会话中客户端的状
阅读全文
摘要:HTTPServletRequest 我们在创建Servlet时会覆盖service()方法,或doGet()/doPost(),这些方法都有两个参数,一个为代表请求的request和代表响应response。 service方法中的request的类型是ServletRequest,而doGet/
阅读全文
摘要:HTTPServletRespons 我们在创建Servlet时会覆盖service()方法,或doGet()/doPost(),这些方法都有两个参数,一个为代表请求的request和代表响应response。 service方法中的response的类型是ServletResponse,而doGe
阅读全文
摘要:Servlet简介 Servlet是sun公司提供一套规范(接口),用来处理客户端请求、响应给浏览器的动态资源。但servlet的实质就是java代码,通过java的API 动态的向客户端输出内容。 Servlet实际上就是运行在服务器端的Java代码 使用 Servlet获取请求的过程 在解析请求
阅读全文
摘要:TomCat简介 TomCat是Apache开源组织下的开源免费的中小型的web应用服务器,支持 javaEE 中的 servlet 和 jsp规范。 安装 1、到官网,选择合适的版本下载 2、安装TomCat Tomcat有安装版和解压版(绿色版) 3、目录结构 4、启动与关闭 进入bin目录 .
阅读全文
摘要:HTTP和HTTPS HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法。 HTTP的端口号为80 HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)简单讲是
阅读全文
摘要:连接池 实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程,为了解决此类性能问题,通常情况我们采用连接池技术,来共享连接Connection。这样我们就不需要每次都创建连接、释放连接了,这些操作都交给了连接池 概念 用池来管理Connection,这样可以重复使用Connection。
阅读全文
摘要:DBUtils 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC开发,我们采用apache commons组件一个成员:DBUtils。 DBUtils是java编程中的数据库操作实用工具,小巧简单实用。 DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。
阅读全文
摘要:JDBC JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。是Java访问数据库的标准规范 JDBC提供了一种基准,据此可以构建更高级的工具和接
阅读全文
摘要:一、线程锁 线程安全问题 其实,线程安全问题都是由全局变量及静态变量引起的。若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程安全。 由于线程休眠的特性,从哪休眠就从哪继续执行(一个线
阅读全文
摘要:线程 多线程就是一个程序中有多个线程在同时执行。 多线程下CPU的工作原理 实际上,CPU(中央处理器)使用抢占式调度模式在多个线程间进行着高速的切换。对于CPU的一个核而言,某个时刻,只能执行一个线程,而CPU的在多个线程间切换速度相对我们的感觉要快,看上去就是在同一时刻运行。 其实,多线程程序并
阅读全文
摘要:一、properties集合 集合对象Properties类,继承Hashtable,实现Map接口,可以和IO对象结合使用,实现数据的持久存储。 特点: 1、基本使用 2、读取文件中的键值对保存到集合 文件格式 name=x5456age=23email=123@qq.com 3、存到文件中 二、
阅读全文
摘要:转换流 之前的FileOutputStream/FileInputStream保存的文件格式为当前系统的编码格式,如果我们想转换成其他的格式就要使用转换流。 一、输出转换流 OutputStreamWriter类 继承于Writer类,接受的是字符数组、字符串、int型,转换成不同形式编码格式的字节
阅读全文
摘要:一、字节输出流 OutputStream抽象类 此抽象类,是表示输出字节流的所有类的超类。操作的数据都是字节,定义了输出字节流的基本共性功能方法。 字节: 这样流每次只操作文件中的1个字节 流对象:操作文件的时候,自己不做依赖操作系统 作用:从Java程序,写入文件(可以写任意文件) 方法: wri
阅读全文
摘要:一、File类 获取路径或目录分隔符 1、3种构造方式 2、创建文件 3、创建文件夹 4、删除文件和文件夹 5、获取文件或文件夹的名字 6、获取文件中的字节数 7、获取绝对路径 8、获取父路径 9、判断路径是否存在 10、判断是否为文件/文件夹 11、遍历目录下所有文件 12、文件过滤器 需要我们自
阅读全文
摘要:异常 Java代码在运行时期发生的问题就是异常。在Java中,把异常信息封装成了一个类。当出现了问题时,就会创建异常类对象并抛出异常相关的信息(如异常出现的位置、原因等)。 异常继承体系: Throwable: 它是所有错误与异常的超类(祖宗类) |- Error 错误 |- Exception 编
阅读全文
摘要:一、Map接口 Map中的集合是双列集合(键值对),Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。 HashMap<K,V>:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。 Linke
阅读全文
摘要:List接口 List接口是Collection接口的子接口,List接口中的抽象方法,有一部分方法和他的父接口Collection是一样,List接口的自己特有的方法, 带有索引的功能。 它是一个元素存取有序的集合。例如,存元素的顺序是11、22、33。那么集合中,元素的存储就是按照11、22、3
阅读全文
摘要:一、集合 Collection接口中的方法是集合中所有实现类必须拥有的方法。 ArrayList implements List List extends Collection 1、基本使用 其他 2、清空集合中的元素 3、判断对象是否存在于集合中 4、将集合转成数组 5、移除元素 二、迭代器 迭代
阅读全文
摘要:不同类型所占字节大小,不同类型转换 定义类,引用类数据类型,集合类型(array list) 类型转换,冒泡排序,选择排序,二分查找,数组的翻转 代理模式与装饰器模式 类加载器,反射 线程安全问题与volatile字段 设计模式 设计模式(创建型模式) 设计模式(结构型模式) 设计模式(行为型模式)
阅读全文
摘要:一、基本类型包装类 在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的。而程序开发中,我们需要把字符串数据,根据需求转换成指定的基本数据类型,如年龄需要转换成int类型,考试成绩需要转换成double类型等。那么,想实现字符串与基本数据之间转换怎么办呢? Java中提供了相应的对象
阅读全文
摘要:一、正则表达式 正则表达式是一个字符串,使用单个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串。在开发中,正则表达式通常被用来检索、替换那些符合某个规则的文本。 1、匹配规则 字符:x 含义:代表的是字符x 例如:匹配规则为"a",那么需要匹配的字符串内容就是 ”a” 字符:\\
阅读全文
摘要:一、Object类 Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。所有类在创建对象的时候,最终找的父类就是Object。 1、equals方法 equals方法,用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较。Object类中的equals
阅读全文
摘要:一、final关键字 继承的出现提高了代码的复用性,并方便开发。但随之也有问题,有些类在描述完之后,不想被继承,或者有些类中的部分方法功能是固定的,不想让子类重写。可是当子类继承了这些特殊类之后,就可以对其中的方法进行重写,那怎么解决呢? 要解决上述的这些问题,需要使用到一个关键字final,fin
阅读全文
摘要:构造方法 在开发中经常需要在创建对象的同时明确对象的属性值,比如员工入职公司就要明确他的姓名、年龄等属性信息。 构造方法即为构建创造时用的方法,即就是对象创建时要执行的方法。既然是对象创建时要执行的方法,那么只要在new对象时,知道其执行的构造方法是什么,就可以在执行这个方法的时候给对象进行属性赋值
阅读全文
摘要:一、抽象类 抽象类:说不清楚的类 抽象方法:说不清楚的方法 方法功能声明相同,但方法功能主体不同。那么这时也可以抽取,但只抽取方法声明,不抽取方法主体。那么此方法就是一个抽象方法。 1、定义抽象类: 当定义了抽象函数的类也必须被abstract关键字修饰,被abstract关键字修饰的类是抽象类。
阅读全文
摘要:面向对象简介 面向对象编程是一种编程方式,此编程方式需要使用 “类” 和 “对象” 来实现。 类,用于描述多个对象的共同特征,它是对象的模板。 对象,用于描述现实中的个体,它是类的实例。 类的定义 创建对象 类名 对象名 = new 类名(); 面向对象编程的优点 最大的好处是:代码重用 1、易维护
阅读全文
摘要:一、类型转换 American Standard Code for Information Interchange,美国标准信息交换代码. 在计算机中,所有的数据在存储和运算时都要使用二进制数表示, a、b、c、d这样的52个字母(包括大写)、以及0、1等数字还有一些常用的符号, 在计算机中存储时也
阅读全文
摘要:1、配置mysql下载源 这样就表示安装成功 2、安装mysql 3、启动mysql 查看mysql的启动状态 转载于:这里
阅读全文
摘要:一、定义类 1、类的格式 public class 类名{ // 类名最好和文件名一样 数据类型 属性名称1; 数据类型 属性名称2; …} 2、类的调用 1)导包:如果所有的类都在同一个文件夹下,就可以不用导包。 2)创建对象:数据类型 变量名= new 数据类型(); 3)调用方法:目前我们定义
阅读全文
摘要:一对多 按创建单张表的方法,创建学院Deptment表 学院和学生是一对多的关系。Flask-SQLAlchemy是通过db.relationship()解决一对多的关系。在Dept中添加属性,代码如下: 表的外键由db.ForeignKey指定,传入的参数是表的字段。db.relations它声明
阅读全文
摘要:假设有两个类别的模块:admin和user模块 一、flask-sqlachemy的使用 1、使用建立mysql的连接 新建一个目录:app,以下操作全部在app目录下 a)新建config.py文件,写入以下内容 b)在app/__init__.py中写入 2、创建model.py模块 3、创建c
阅读全文
摘要:默认JDK 安装: sudo apt-get update sudo apt-get install default-jre Oracle JDK 安装: 1、设置 PPA sudo add-apt-repository ppa:webupd8team/java sudo apt-get updat
阅读全文
摘要:全文检索插件flask-msearch 一、安装 二、修改表结构 三、添加检索的视图函数 四、创建更新删除索引 五、自定义分词系统 六、配置文件 参考于:这里
阅读全文
摘要:本文采用CentOS7下用Nginx和uwsgi部署的方式 一、安装Python环境依赖 1、在本地的虚拟环境中,项目根目录下,执行命令收集所有包 2、上传项目到服务器的目录 scp 项目名 root@39.107.86.xxx:~ 3、服务器安装Python虚拟环境 安装并创建虚拟环境猛击这里,如
阅读全文
摘要:一、安装Chrome浏览器 1、安装依赖 2、下载Chrome安装包 3、安装 二、安装ChromeDriver 1、安装xvfb以便我们可以无头奔跑地运行Chrome 2、安装依赖 3、下载安装包 4、解压缩+添加执行权限 5、移动 6、建立软连接 三、无头运行Chrome 1、安装Python依
阅读全文
摘要:https://segmentfault.com/a/1190000004618621
阅读全文
摘要:1、下载安装包 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.8.tgz 2、解压缩 tar zxvf mongodb-linux-x86_64-rhel70-3.2.8.tgz 3、重命名 mv mong
阅读全文
摘要:1、获取安装包 wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 2、将bz2格式装换成tar格式 3、解压缩到/usr/local目录下 4、安装依赖 5、重命名 6、
阅读全文
摘要:screen 的使用 1、安装 sudo apt-get install screen # Ubuntu sudo yum install screen # CentOS7 2、新建窗口 $ screen #这样就可以新建窗口,进入到一个窗口中,但是这样窗口就没有名字,无法区分他们 $ screen
阅读全文
摘要:删除表中数据: truncate table wp_comments; delete * from wp_comments; 两种方法的区别: 其中truncate操作中的table可以省略,delete操作中的*可以省略。这两者都是将wp_comments表中数据清空,不过也是有区别的,如下: t
阅读全文
摘要:一、安装Navicat:官网 1、下载安装包 wget https://www.navicat.com.cn/download/direct-download?product=navicat_premium_cs_x64.tar.gz&location=1 2、解压 tar -zxvf /home/
阅读全文
浙公网安备 33010602011771号