hs20天复习

hs20天复习

学习知识点:

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 <int<long<float <double

​ 对于引用数据类型来说:

​ 父类 和 子类 之间; 接口和实现类 之间

​ 父类和接口属于大类型; 子类和实现类属于小类型

​ 类型转换: 大小类型之间可以互相转换

​ 小类型转换为大类型: 自动类型转换,向上转型;不会出问题

​ 大类型转换为小类型: 强制类型转换, 向下转型;有可能会溢出,会报异常

​ 涉及到类或接口类型:

​ 小类型转换成大类型: 向上转型;多态本质上属于向上转型

​ 大类型转换为小类型: 有可能汇报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

2.servlet,jsp复习

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个变量,无需重复定义,直接使用即可

  • pageContext 页面上下文对象 类型 javax.servlet.jsp.PageContext 作用域 Page
  • request 请求对象   类型 javax.servlet.ServletRequest 作用域 Request
  • response 响应对象   类型 javax.servlet.SrvletResponse 作用域 Page
  • session 会话对象   类型 javax.servlet.http.HttpSession 作用域 Session
  • application 应用程序对象  类型 javax.servlet.ServletContext 作用域 Application
  • out 输出对象   类型 javax.servlet.jsp.JspWriter 作用域 Page
  • config 配置对象   类型 javax.servlet.ServletConfig 作用域 Page
  • exception 例外对象     类型 javax.lang.Throwable 作用域 page
  • page 页面对象     类型javax.lang.Object 作用域 Page

el表达式:

​ 语法: ${}

取作用域:

​ pageScope requestScope sessionScope applicationScope

jstl标签库:

  1. 引入jstl依赖

  2. 引入jstl标签声明 <%@ taglib prefix="" uri=""%>

  3. 使用标签

    常用标签:

    ​ <c:if test> 判断

    <c: forEach items="" var=""> 循环

    <fmt:formatDate src="" pattern=“yyyy-MM-dd hh:mm:ss”> 格式化日期显示

web服务器:

​ tomcat服务器:

​ web项目写好之后需要发布到tomcat服务器里面,然后再启动服务器,通过客户端浏览器来访问服务器

​ 注意: 当代码改动过后,务必要重启服务器

3. spring,mybatis,springmvc框架 以及ssm整合

spring:

http://spring.io 官网

IOC: Inverse Of Control 控制反转 控制权转移, 由程序员主动new对象变成spring容器来给我们创建对象;

​ 创建对象的主动权发生转移

DI: Depencience Inject 依赖注入 控制权转移之后,由spring容器来给给我们创建对象以及注入对象的相关属性

注入方式:

  1. 设值注入

    在spring配置文件通过bean标签来配置javabean,本质上就是通过setter方法来实现注入的,必须有setter方法,否则会报错

  2. 构造注入

    本质上就是通过构造方法来实现注入的,必须有相应参数的构造方法,否则会报错

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();  创建一个SqlSession对象

​ SqlSession session=sqlSessionFactort.openSession(true); 创建一个SqlSession对象 ,能够自动提交事务

SqlSession:

​ selectList(): 查询所有

​ selectOne() : 查询单个

​ insert() : 添加

​ update(): 修改

​ delete(): 删除

​ close() : 关闭

​ commit(): 手动提交事务; 增删改的时候必须要提交事务

​ getMapper(Class clazz): 获取接口对象

配置别名:2种方式

  1. 基于xml方式映射

    ​ selectList(): 查询所有

    ​ selectOne() : 查询单个

    ​ insert() : 添加

    ​ update(): 修改

    ​ delete(): 删除

  2. 基于接口方式来映射

    ​ getMapper(Class clazz): 获取接口对象

  3. 基于注解方式来映射

    ​ 不需要写映射文件,直接将sql语句配置在接口对应的方法上面

ResultMap标签: 配置javabean里面属性名和字段名之间的映射关系

1. 能够解决属性名和字段名冲突的情况
2. association标签配置一对一关系
3. collection配置一对多关系

ResultType标签: 只有属性名和字段名保持一致才会查询出对应的结果,如果不一致,该属性没值

动态sql:

​ 标签

​ 判断 标签

​ 能够去除多余的and关键字

set就相当于set关键字,能够去除最后一个多余的,

自定义标签,能够模拟实现where标签和set标签的实现效果

<forEach item="" collection="" index="" sepeartor="" open="" close="”>

foreach 循环
属性:
item: 集合中的每个元素
index: 下标
collection: 集合 值为 list/array/map
separator: 每个元素的分隔符
open: 整个循环以什么开头
close: 整个循环以什么结尾

springmvc:

​ 控制层框架:封装的是servlet

环境搭建:

​ 在web.xml里面配置springmvc的核心分发器 DispatcherServlet:

springmvc.xml文件:

​ 配置视图解析器:

​ 两个属性prefix suffix 前缀和后缀的含义

取值传值:

​ 取值:后台取前台传过来的参数值

	1. 通过request对象来取参数值 request.getParameter(String name)
	1. 参数名和前台表单name属性值保持一致
	1. 参数名和name属性值不一致时,参数前可以加 @RequestParam("")
	1. 通过javabean来取值;javabean的属性名必须和前台表单name属性值保持一致

传值: 将后台传到前台,前台使用${}来取值

1. 通过Model对象传值
1. 通过ModelAndView对象传值
1. 通过Map集合来传值

类型转换器:

​ 当前台参数的数据类型和后台类型不一致时,需要写类型转换器

​ 实现接口Converter<源类型,目标类型>

格式转换器:

​ 比如处理Date类型数据的时候,需要格式转换器,因为springmvc取不到date类型,取到的是String类型

​ 实现接口Formatter

这两种转换器都需要在springmvc配置文件里面进行相关配置

ssm整合:

​ 配置文件可以直接拷贝使用,注意包名的对应关系,截图上都有;

​ 里面直接写业务代码,注意代码里面的注解不要写错或者往写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值