学习知识点:
1.javaoop复习 数据类型:
基本数据类型:
数值:
整数: byte short int long
小数:float double
字符:
char ‘’
布尔:
boolean true/false
引用数据类型:
数组 类 接口 String
String类型定义的时候:
String s1=“abc”;String s2=new String(“abc”);
s1==s2; //false ==对于对象类型类型比较的是内存地址
s1.equals(s2); //true 比较值是否相等
类型有大类型和小类型之分:
数值类型: 从小到大,从弱到强 byte < short 对于引用数据类型来说: 父类 和 子类 之间; 接口和实现类 之间 父类和接口属于大类型; 子类和实现类属于小类型 类型转换: 大小类型之间可以互相转换 小类型转换为大类型: 自动类型转换,向上转型;不会出问题 大类型转换为小类型: 强制类型转换, 向下转型;有可能会溢出,会报异常 涉及到类或接口类型: 小类型转换成大类型: 向上转型;多态本质上属于向上转型 大类型转换为小类型: 有可能汇报ClassCastException: 可以使用instanceof来判断某个对象是否属于某个类型 java面向对象: 万事万物皆对象: 类里面都有属性和方法 创建对象使用new关键字 public class Teacher{ //属性 //方法 } class Test{ public static void main(String[] args){ Teacher t=new Teacher(); } } 方法: 表示动态的,行为或者能力,动作等等 方法根据有没参数: 无参的方法和有参的方法 方法根据有没有返回值: 有返回值的方法和无返回值的方法 void 方法根据功能和作用: 构造方法和普通方法 构造方法: 名称跟类名一致,但是没有返回值类型;构造类和对象之间的关系的一个方法;一般在new的时候调用 方法的重载: 本类里面; 参数列表不一样(参数个数或者对应位置类型不一致) 方法的重写: 方法的实现逻辑不一样 面向对象: 特征: 封装,继承,多态 继承只支持单根继承;一个子类只能继承一个父类但是可以同时实现多个接口; 可以通过接口来弥补继承的不足 面向接口编程的思想: 对外提供接口,隐藏接口的实现细节; 接口侧重于约定或者能力 面向服务的编程思想:SOA 面向领域的编程思想:DDD 面向行业的解决方案 关键字: this: 表示当前对象 super: 表示父类对象 final: 修饰 变量就是常量 修饰类 不能被继承 修饰方法不能被重写 static: static 变量 类变量 static 方法 静态方法 static{} 静态块 第一次使用到该类的时候就自动加载执行 访问权限修饰符: private [default] protected public bs架构与cs架构区别: bs: browser server 浏览器服务器结构: 客户端就是浏览器;通过浏览器来访问服务器资源 cs: client server 客户端服务器结构: 富客户端 ;核心逻辑集中在客户端程序 javaweb其实就是bs架构;面向web服务器端编程 servlet: 概念: 服务器上的一个小程序,也是一个容器,接收客户端请求,执行相应的业务逻辑,最终产生响应给客户端浏览器 生命周期: 过程,有开始,执行,结束的过程 init() 初始化方法 service() 执行 destroy() 销毁 load-on-startup 值是个整数值: 加载时机: 表示该servlet什么时候被加载,什么时候被初始化 >=0 表示服务器启动的时候就自动加载执行; 正数的值越小,越先加载 <0 表示浏览器访问的时候加载执行 servlet体系结构: class 类 extends HttpServlet{ service(HttpServletRequest request,HttpServletResponse response){ } } HttpServlet: 跟Http相关的servlet GenericServlet: 是HttpServlet的父类;跟协议无关的servlet Servlet,ServletConfig: 接口,最终每个servlet都会实现这2个接口 urlPatterns("/路径"): 注意: /不能省略; 多个urlPatterns值不能重复 request: 类型: HttpServletRequest 封装的是客户端浏览器向服务器发送的所有内容 response: 类型: HttpServletReponse 封装的是服务器给客户端响应的所有内容 request方法: 前台向后台传参数: 后台如何取参数:String request.getParameter(Strring name); request.setCharacterEncoding(); 设置中文编码; //一般处理post请求里面的中文乱码 get请求里面的中文乱码: tomcat server.xml 71行左右 加上配置 URIEncoding=“utf-8”; 但是tomcat9默认能够处理get请求中文乱码;tomcat9不用配 response.setCharacterEncoding(); //处理response里面的中文乱码 前台请求方法: get: 走url传输数据; 不安全; 传输数据大小有限制;理论上不超过1M post: 走请求体;安全;数据大小无限制 后台servlet里面的方法: doGet(): 处理get请求: doPost(): 处理的是post请求 service(): 处理的是所有请求 HttpServletRequest request: 请求转发,前后数据能够实现共享 request.setAttribute(String name,Object value) 设置值 Object request.getAttribute(String name) 取值 HttpSession session: 会话,代表某个用户的一系列的操作,比如显示登录的用户名 HttpSession request.getSession(): // 获取session对象 session.setAttribute(String name,Object value) 设置值 Object session.getAttribute(String name) 取值 ServletContext: 代表该项目,表示所有用户都能共享的全局变量,比如实现在线人数 ServletContext application=request.getServletContext();//通过request对象来获取 ServletContext application=session.getServletContext();//通过session对象来获取 application.setAttribute(String name,Object value) 设置值 Object application.getAttribute(String name) 取值 servlet之间的跳转: 请求转发: request.getRequestDispatcher(String path).forward(request,response); request对象的方法: 请求转发url不会改变;在服务器端进行;前后数据可以共享 重定向: response.sendRedirect(String path); response对象的方法:重定向url会发生改变;在客户端进行;前后数据不能共享 JSP: Java Server Pages 什么是jsp? html+java代码片段组合 ;以html为主,java代码为辅 jsp执行原理: 浏览器访问的时候会转换成一个java文件,而这个Java类继承了HttpJspbase类;HttpJspbase是HttpServlet的子类 说明: jsp本质上就是一个Servlet JSP语法: 里面的java代码片段语法: <%@ %> jsp指令 三大指令: page include taglib <% %> 里面可以定义属性和方法;相当于写在servlet里面的属性和普通方法 <%! %> 小脚本;java代码片段; 逻辑就相当于写在servlet里面service方法里面的逻辑 <%= %> 表达式 <%-- --%> jsp注释 三大指令: page taglib include 四大作用域: pageContext: 表示当前jsp页面 request: 请求前后 session: 会话,代表该用户 application: 表示该项目 九大内置对象:系统里面定义好的9个变量,无需重复定义,直接使用即可 el表达式: 语法: ${} 取作用域: pageScope requestScope sessionScope applicationScope jstl标签库: 引入jstl依赖 引入jstl标签声明 <%@ taglib prefix="" uri=""%> 使用标签 常用标签: web服务器: tomcat服务器: web项目写好之后需要发布到tomcat服务器里面,然后再启动服务器,通过客户端浏览器来访问服务器 注意: 当代码改动过后,务必要重启服务器 spring: http://spring.io 官网 IOC: Inverse Of Control 控制反转 控制权转移, 由程序员主动new对象变成spring容器来给我们创建对象; 创建对象的主动权发生转移 DI: Depencience Inject 依赖注入 控制权转移之后,由spring容器来给给我们创建对象以及注入对象的相关属性 注入方式: 设值注入 在spring配置文件通过bean标签来配置javabean,本质上就是通过setter方法来实现注入的,必须有setter方法,否则会报错 构造注入 本质上就是通过构造方法来实现注入的,必须有相应参数的构造方法,否则会报错 javabean注入: ref表示引用另外一个javabean value表示普通属性注入 自动装配: 在xml文件里面,某个javabeanspring容器里面有的话,可以不用手动装配;可以直接自动装配 属性autowired="" ByName 按名称 ByType 按类型 byName: 对象名和属性名一致的情况选,就自动装配进去 byType: 对象类型和属性类型一致时,就自动装配进去 ;注意: 如果同一种类型的对象只能有一个,否则会报错,不知道该装配哪个 通过注解方式来实现自动装配: 需要在待装配的属性上面写个注解 @Autowired 就表示自动装配 需要在xml里面配置该注解的支持: AOP: 面向切面编程: 2种写法: 基于xml的写法 基于注解的方法 maven: 项目管理工具,管理依赖用的,在pom.xml文件里面配置,理解他的项目结构 maven project: 就相当于java project maven web poject: 就相当于web project 如何配置maven; 1. 需要设置本地仓库 2. 需要设置阿里云镜像 2. 需要idea关联本机maven mybatis: 数据访问层框架;封装的是jdbc;是个orm框架 环境搭建一定要掌握 mybatis配置文件: 连接java程序连接数据库的相关配置 mybatis映射文件:配置对数据库的各种增删改查的sql操作 常用的类: SqlSessionFactory: SqlSession session=sqlSessionFactort.openSession(true); 创建一个SqlSession对象 ,能够自动提交事务 SqlSession: selectList(): 查询所有 selectOne() : 查询单个 insert() : 添加 update(): 修改 delete(): 删除 close() : 关闭 commit(): 手动提交事务; 增删改的时候必须要提交事务 getMapper(Class clazz): 获取接口对象 配置别名:2种方式 基于xml方式映射 selectList(): 查询所有 selectOne() : 查询单个 insert() : 添加 update(): 修改 delete(): 删除 基于接口方式来映射 getMapper(Class clazz): 获取接口对象 基于注解方式来映射 不需要写映射文件,直接将sql语句配置在接口对应的方法上面 ResultMap标签: 配置javabean里面属性名和字段名之间的映射关系 ResultType标签: 只有属性名和字段名保持一致才会查询出对应的结果,如果不一致,该属性没值 动态sql: 标签 判断 标签 能够去除多余的and关键字 set就相当于set关键字,能够去除最后一个多余的, 自定义标签,能够模拟实现where标签和set标签的实现效果 传值: 将后台传到前台,前台使用${}来取值 类型转换器: 当前台参数的数据类型和后台类型不一致时,需要写类型转换器 实现接口Converter<源类型,目标类型> 格式转换器: 比如处理Date类型数据的时候,需要格式转换器,因为springmvc取不到date类型,取到的是String类型 实现接口Formatter 这两种转换器都需要在springmvc配置文件里面进行相关配置 ssm整合: 配置文件可以直接拷贝使用,注意包名的对应关系,截图上都有; 里面直接写业务代码,注意代码里面的注解不要写错或者往写 SqlSession session=sqlSessionFactort.openSession(); 创建一个SqlSession对象
1. 能够解决属性名和字段名冲突的情况
2. association标签配置一对一关系
3. collection配置一对多关系
1. 通过Model对象传值
1. 通过ModelAndView对象传值
1. 通过Map集合来传值



