Java自学笔记系列(最新整理)
摘要:定义拦截器需要实现HandlerInterceptor接口,该接口中由三个方法:afterCompletion、postHandle、preHandle。 拦截器配置: 1、SpringMVC的拦截器是针对HandlerMapping进行拦截设置。 若在某个HandlerMapping中配置拦截,经 阅读全文
摘要:RESTful架构,REST即Representational State Transfer。表现层状态转换,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以得到越来越多网站的采用。 RESTful其实就是一个开发理念,是对http的很好诠释。 RESTful
摘要:SpringMVC进行Json交互: 客户端发送请求。若该请求K/V串是Json串时,这时会经过controller的参数绑定,进行Json数据的转换,转换时,在SpringMVC中,通过注解@RequestBody将Json串转成Java对象。@ResponseBody将Java对象转成Json串 阅读全文
摘要:系统中异常包含两种:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范化代码开发、测试手段减少运行时异常的发生。 系统的dao、service、controller出现异常都通过throws Exception向上抛出,最后由
摘要:数据回显就是数据提交后,若出现错误,将刚才交替的数据回显到提交页面。 pojo数据回显方法: SpringMVC默认对pojo数据进行数据回显。pojo数据传入controller方法后,SpringMVC自动将pojo数据放到request域,key就是pojo类型(首字母小写) 当JSP页面
摘要:SpringMVC使用Hibernate的校验框架validation(和Hibernate没有关系)。 页面提交请求的参数,请求到Controller方法中,使用validation进行校验。除去使用校验Jar包外,还需要在SpringMVC.xml中来配置validation校验器。 将校验器注 阅读全文
摘要:SpringMVC参数绑定过程:从客户端请求key/value的数据,经过参数绑定,将key/value的数据绑定管道controller方法的形参中。 在SpringMVC中,接收页面提交的数据时,通过方法形参来接收,而不是controller类定义成员变量来接收。 流程: 客户端请求key/va 阅读全文
摘要:前端控制器配置,在web.xml中配置前端控制器。 配置处理器适配器:在classpath下的springmvc.xml中配置处理器映射器。 配置Handler:将编写的Handler在spring容器中加载。 配置处理器映射器:在classpath下的springmvc.xml中配置处理器映射器。 阅读全文
摘要:SpringMVC是Spring框架的一个模块,SpringMVC和Spring无需通过中间层进行整合。SpringMVC是一个基于MVC设计模式的一个框架。 SpringMVC框架原理: 客户端发送一个request请求到SpringMVC的前端控制器(DispatcherServlet),Dis 阅读全文
摘要:Mybatis和Spring整合: 持久层Mybatis的mapper.xml都需要spring进行管理,则需要spring通过单例方式管理SqlSessionFactory。spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession。 整合后的原始 阅读全文
摘要:Mybatis提供查询缓存,用于减轻数据库压力,提高数据库性能。查询缓存分为一级缓存和二级缓存。 一级缓存是SqlSession级别的缓存。在操作数据库时需要SqlSession对象,在对象中有一个数据结构(hasmap)用于存储缓存数据。不同的SqlSession之间的缓存数据区域(hashmap 阅读全文
摘要:高级映射: 一对一查询:对应表t_Orders、t_User select t_orders.*,t_user.username,t_user.address from t_orders,t_user where t_orders.user_id=t_user.id resultType实现方式: 阅读全文
摘要:Mybatis输入映射: 通过parameterType指定输入参数的类型,类型可以是简单类型、hashmap、pojo的包装类型。 pojo的包装类型: 当完成一个功能需要传入复杂的条件时,需要使用pojo的包装类型。那么包装类型的pojo类型映射: 定义User实体类的扩展类: 在包装类型的po 阅读全文
摘要:SqlSession范围: 1、SqlSessionFactoryBuilder:通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory。 将SqlSessionFactory当成一个工具类使用即可,不需要使用单例管理SqlSessionFactoryBu 阅读全文
摘要:原生态JDBC程序问题总结: 1、数据库连接,使用时就创建,不使用立即释放。该操作是对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能。 解决:使用数据库连接池管理数据库连接。 2、将sql语句硬编码到java代码中,若sql语句修改,需要重新编译java代码,不利于维护。 解决:将 阅读全文
摘要:Maven: Maven是Apache公司开源项目。是一个项目构建工具。用来依赖管理。 同样的项目,使用Maven开发项目相对于传统方式开发项目占用的空间要小,因为Maven项目没有Jar包信息。因为Maven项目的Jar包信息都在Jar包仓库(又称Maven仓库)中。 Maven查找Jar包的过程 阅读全文
摘要:SSH框架: Struts2(web层)、Spring(service层)、Hibernate(dao层)整合。 ssh框架整合式两两整合,就是Struts2与Spring整合、Spring与Hibernate整合。 Struts2与Spring整合: 就是把struts2的action对象创建交给 阅读全文
摘要:Spring对不同持久化技术都进行封装了不同的模板类。模板类有: JDBC:org.springframework.jdbc.core.JdbcTemplate Hibernate5.0:org.springframework.orm.hibernate5.HibernateTemplate IBa 阅读全文
摘要:Spring的Bean操作(注解方式): 注解:代码中特殊的标记,使用注解可以完成相关功能。 @注解名称(属性名称=属性值) 注解可以使用在类、方法、属性上面。 主要用途:可以替代配置文件来创建对象和属性注入。 在做ioc基本功能时,配置文件引入的schema约束为beans约束,而在做spring 阅读全文
摘要:Spring概述: spring是一个一站式轻量级的开源框架。spring核心主要有两部分:AOP(面向切面)、IOC(控制反转)。 aop:卖你想切面编程。扩展功能不修改源代码实现。 ioc:控制反转。当类中有非静态方法,调用该方法时需要创建类的对象。而spring把对象的创建不是通过new的方式 阅读全文
摘要:拦截器概述: 1、在struts2框架中封装的很多功能都是在拦截器中。 2、在struts2中有很多拦截器,不是每次这些拦截器都回执行,每次执行的都是默认拦截器。 3、默认拦截器的位置在struts2-core.jar包中的struts-default.xml文件中可以找到。 4、拦截器执行:在ac 阅读全文
摘要:OGNL概述: OGNL是一种表达式,Struts2默认的表达式语言就是OGNL,该表达式功能更加强大。它具有一下特点: 》支持对象方法调用。例:obj.methodName(); 》支持类静态方法调用和值访问,表达式的格式:@[类全名(包括包路径)]@[方法名|值名] 例:@java.lang.S 阅读全文
摘要:结果页面配置: 1、全局结果页面: 》result标签配置action方法的返回值到不同的路径中。 》创建俩个action,执行默认的execute方法,让俩个action的方法都返回相同的success,返回success之后,配置到同一个页面中。 若多个action,方法中的返回值都一样,到的页 阅读全文
摘要:概述: 1、Struts2框架应用Java EE三层结构中的Web层框架。 2、Struts2框架是Struts1和webwork基础之上发展的全新的框架。 3、Web层常用的框架:Struts2、SpringMVC 入门案例: 1、导入jar包。 2、创建action:每次访问action时,默认 阅读全文
摘要:二级缓存: Hibernate底层连接池提供了类为DriverManagerConnection,DirverManager就是hibernate实现的连接池。使用的代码就是DriverManager.getConnection(url,uname,pwd);因为封装的连接池的性能一般,所以要更好的 阅读全文
摘要:Hibernate查询方式: 1、对象导航查询:根据id查询出一的数据,再根据一的查询结果查询多的数据。 2、OID查询:根据id查询某一条记录,返回对象。 3、HQL查询:Query对象,写hql语句实现查询。 》条件查询:from 实体类名称 where 实体类属性名称=?and ..... 》 阅读全文
摘要:实体类编写规则: 1、实体类中属性私有化。 2、私有属性使用公开的set()和get()。 3、要求实体类中有属性作为唯一值。 4、实体类中属性建议不使用基本数据类型,而使用基本数据类型对应的包装类。 》八个基本数据类型对应的包装类: int>>Integer、char>>Character、其他的 阅读全文
摘要:Hibernate: JavaEE三层结构: 1、web层:Struts2框架作用在该层。 2、Service层:Spring框架作用在该层。 3、dao层:Hibernate框架作用在该层。对数据库进行crud(增删改查)操作。 概述: Hibernate框架: 1、应用在JavaEE三层结构中D 阅读全文
摘要:Redis: 关系型数据库(SQL):MySQL、Oracle 特点:数据与数据之间,表与字段之间,表与表之间是存在关系的 优点: 1、数据之间有关系,进行数据的增删改查时非常方便。 2、关系型数据库,有事物操作。保证数据的完整性。 缺点: 1、因为数据和数据之间有关系,是由底层大量算法保证的。大量 阅读全文
摘要:Linux: 主流版本: Ubuntu:以强大的桌面应用为主。因为桌面应用会在一定程度上大量占用系统资源,所以服务器部署上不会有限考虑。 CentOS:对服务器性能进行了一定程度的优化,性能比较高,比较稳定。服务器部署会优先考虑。 虚拟机软件: VMware Workstation:是一款功能强大的 阅读全文
摘要:commons-fileupload组件: commons-fileupload.jar commons-io.jar 该组件会解析request中的上传数据,解析后的结果是一个表单项数据封装到一个FileItem对象中,只需调用FileItem中的方法即可。 上传三步:相关类 工厂:DisFile 阅读全文
摘要:监听器: 监听三大组件:Servlet、Listener、Filter。 三大组件都需要在web.xml中进行配置。Listener中由二个感知监听器不需要配置。 Listener: 特性: 1、是一个接口,内容自定义来实现。 2、需要注册。在web.xml中进行配置 3、监听器的方法,会在特殊事件 阅读全文
摘要:JDBC:Java数据库连接 JDBC的四大配置参数: dirverClassName:com.mysql.jdbc.Dirver url:jdbc:mysql://localhost:3306/数据库名称 username:数据库用户名 password:数据库密码 各大数据库的dirverCla 阅读全文
摘要:EL: EL是JSP内置的表达式语言。Java 2.0开始,不让再使用Java脚本。而是使用EL表达式和动态标签来代替Java脚本。EL代替的是<%= ... %>,也就是说,EL只能做输出。 EL表达式来读取四大域: ${xxx}:全域查找名为xxx的属性,若不存在,输出空字符串,而不是null。 阅读全文
摘要:Cookie: Http协议规定: 1个Cookie最大4kb;1个服务器最多向一个浏览器保存20个Cookie;1个浏览器最多可以保存300个Cookie。 JavaWeb中使用Cookie: 原始方式:使用response发送Set-Cookie响应头;使用request获取Cookie请求头 阅读全文
摘要:JSP: 全称:Java Servlet Pages JSP和Servlet分工: JSP:作为请求发起页面、请求结束页面。 Servlet:作为请求中处理数据的环节。 JSP = html + java脚本 + jsp标签(指令) JSP中无需创建即可使用的对象一共有九个,被称为九大内置对象。 九 阅读全文
摘要:编码: 常见的字符编码:iso-8859-1(不支持中文)、gb2312、gbk、utf-8 等。 1、响应编码: 当使用response.getWriter()来向客户端发送字节数据时,若在之前没有设置编码,那么默认使用iso,iso不支持中文,故一定乱码。 在使用response.getWrit 阅读全文
摘要:服务器处理请求流程: 服务器每次收到请求时,都会为这个请求开辟一个新的线程;服务器会把客户端的请求数据都封装到request对象中,request就是请求数据的载体;服务器还会创建response对象,这个对象与客户端连接在一起,它可以用来向客户端发送响应。 Response: 其类型为:HttpS 阅读全文
摘要:Servlet: Servlet是JavaWeb的一个组件。属于动态资源,作用是处理请求;每个Servlet都是唯一的,他们能处理的请求是不同的。 在服务器把接收的请求交给Servlet处理时,在Servlet中通常需要:接收请求数据、处理请求、完成响应。 每个Servlet都必须实现 javax. 阅读全文
摘要:junit:单元测试 测试对象是一个类中的方法。junit 不是JavaSE的一部分,使用时需要导入 jar 包;但开发工具自带了 junit 的 jar 包。 单元测试方法命名规范: 单元测试方法不能带有任何参数。在单元测试中需要使用注解方式运行测试方法。在方法上方加 @Test @Test:进行 阅读全文
摘要:XML eXtensible Markup Language 可扩展标记语言。xml 是w3c组织发布的技术。xml 由俩个版本:1.0、1.1 。当前使用的都是1.0版本,因为1.1版本不能向下兼容。 xml 可以显示数据,但不是主要功能。主要功能是为了存储数据。 应用: 1、不同系统之间数据传输 阅读全文
摘要:Java 9 出现的 模块化思想/技术 优点:文件体积缩小,权限体系更精准 module-info.java 模块描述信息文件 module 本模块名称{ exports(导出) 对外暴露的包路径; requires 需要依赖的其他模块名称; } 新建: 右击项目>>Configure>>Creat 阅读全文
摘要:Lambda表达式 语义本身就代表了做事情的动作,没有对象的概念在其中。 Java中使用Lambda表达式的前提:必须有 函数式接口。 概念:有且只有一个的抽象方法的接口就叫函数式接口。 为确保当前接口为函数式接口,在定义接口的前一行加 @FunctionalInterface 格式: Lambda 阅读全文
摘要:反射 java按照万物皆对象的原则,将复杂的事物都封装成了对象。如:字节码文件封装了Class对象。将类中的成员封装成了Field对象。类中的方法封装成了Method对象。类中的构造函数封装成了Constructor对象。 Class类中的这些方法可以获取到或者访问到指定一个字节码文件中的任意成员。 阅读全文
摘要:正则表达式: 正则就是用于操作字符串的规则。其中是以一些符号来标识规则。 字符类: [] :范围 - :连接符 ^ :非 预定义字符类: . :任何字符 \d :数字 \D :非数字 \s :空白字符 \S :非空白字符 \w :单词字符 \W:非单词字符 边界匹配器: ~ :行开头 $ :行结尾 阅读全文
摘要:网络编程 网络模型: OSI模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。 TCP/IP模型:应用层、传输层、网际层、数据链路层。 网络通讯最基本的三大要素:IP地址、端口号、传输协议。 网络编程主要作用于:传输层、网际层。 IP地址: 端口号: 逻辑端口就是给应用程序分配的一个 阅读全文
摘要:GUI 图形化用户界面。Graphical User Interface 图形用户接口 CLI:Command line User Interface 命令行用户接口;常见的DOS命令行操作 Java为GUI提供的对象都存在Java.AWT、Java.Swing包中。 AWT:Abstrace Wi 阅读全文
摘要:IO: IO流按操作分为:字节流、字符流。 所有的数据都是以字节体现的,后期产生了字符流。因为字符数据涉及到了编码问题。所以在字符流对象中加入的编码机制。如果处理的数据都是字符数据,那么可以使用字符流对象来完成。 IO流按流分为:输入流、输出流。 字符流: 字符流操作文件数据,读取/写入时需要匹配编 阅读全文
摘要:System类: 方法都是静态方法,不能被实例化。 Runtime类: 不能被实例化,到那时自身含有非静态方法;故该类对外提供 getRuntime() 方法创建对象来调用 Runtime rt=Runtime.getRuntime(); 该类时使用 单例模式 设计出来的。保证了一个运行时程序对象在 阅读全文
摘要:集合: 集合是用于存储对象的一个工具。 集合与数组的特点 相同点:都是一个容器 不同点: 集合:可以存储对象,只能存储对象,集合长度可变。 数组:可以存储对象,也可以存储基本数据类型,数组长度固定。 容器对象有很多种,通过内部的数据结构来区分,数据结构就是一种数据存储方式。 在不断的将容器对象的相同 阅读全文
摘要:多线程: JVM的启动是一个多线程程序;其中有一个程序负责从主函数开始,并控制程序的运行流程;同事为了提高效率,还启动了另一个控制单元,专门负责堆内存垃圾的回收。 负责执行征程程序代码的线程,称为主线程。 该线程执行的代码都存放于主函数中。 负责垃圾回收的线程,该线程代码在finalize中。 进程 阅读全文
摘要:包(package) 对类文件进行分类管理的一种机制。包是一种封装形式。 定义: package 包名; class 类名{} 包名规范: 所有字母小写。 包在文件系统中体现就是文件夹。 cmd运行: javac -d . 类名 java 包名.类名 -d 指定要存放的目录。 有了包以后,在编译时, 阅读全文
摘要:异常Exception 程序运行时出现的不正常情况。 异常问题分为俩大类: 1、可以处理的问题 一般用Exception(异常)来进行描述,这个异常可以有针对性的代码处理。 2、重大错误问题 用Error进行描述,这种异常发生后,一般不编写针对性的代码来进行处理,而是对程序进行修改。 声明异常 th 阅读全文
摘要:Object: 所有类的父类,即跟类。Java中的类直接或间接的继承自Object 该类中封装了所有对象都具备的方法: boolean equals(Object obj) 对象比较;默认比较内容地址。所以很多对象都会对该方法复写。 String toString() 字符串转换。 int hash 阅读全文
摘要:接口 interface implements(实现)当抽象类的方法都是抽象的时,这时把该类定义成接口接口可称为特殊的抽象类。特点: 1、接口的方法都是抽象的 2、接口不可以被实例化 3、只有子类实现了接口中的所有方法后,该子类才可以实例化,否则该子类还是抽象类。格式特点:接口中常见的成员:1、全局 阅读全文
摘要:Java中只支持单继承,不支持多继承(确切的说,是Java改良了多继承,避免了安全隐患的产生) Java可以存在多层(多重)继承。例:A,B extends A,C extends B 最父类(A)定义的功能是该体系中最共性的功能。要了解该体系的功能,只要参考最父类的功能即可。 多重继承原则: 1、 阅读全文
摘要:保证类在内存中对象的唯一性。 实现: 1、想构造函数私有化。这样对方程序创建就无法初始化,已达到不允许其它程序创建对象的目的。 2、在本类中用new来创建一个本类的对象。 3、提供一个公用的函数返回该对象。方便与其它程序获取该对象。 体现: 1、私有化构造函数。 2、创建一个私有并静态的本类对象。 阅读全文
摘要:类与对象的关系 类、现实事物的描述 对象、该事物中事实存在的个体。 对象本身已知的事物 称为实例变量。代表对象的状态 对象可以执行的动作 称为方法。代表对象的行为 成员变量与局部变量的区别 1、作用范围 成员变量、定义在类中,作用整个类。 局部变量、只在所属函数或代码段中有效。 2、存储情况 成员变 阅读全文
摘要:当要操作的数据较多时,先要想到将数据进行临时存储。 特点: 1、数组是一个存储同一类型数据的容器。 2、数组一旦初始化,长度是固定的 3、数组中的元素都有角标,从0开始进行元素的编号。 数组的定义格式: 1、int[] arr = new int[3]; 不明确数组中的元素内容 2、int[] ar 阅读全文
摘要:运算符: 1、算术运算符 + - * / %(取余) ++:自增(前/后)前:a=2;b=++a; a=3;b=3;后:a=2;b=a++; a=3;b=2 --:自减(前/后)前:a=2;b a; a=1;b=1;后:a=2;b=a--; a=1;b=2 2、赋值运算符 = += -= *= /= 阅读全文
摘要:一、基础常用dos命令行: 1、dir:陈列目录下的文件及文件夹 2、md:创建目录 3、rd:删除目录 4、cd:进入制定目录 5、cd..:返回上一级目录 6、cd\:退回跟目录 7、del:删除文件 8、cms:清屏 9、exit:退出dos 10、start:新开dos窗口 二、Java语言 阅读全文