客户端
前端技术
一. html
基本标签
- div
- img
- a
- ul
- li
表单标签
- form
- input
- type属性
- 代表输入框:text、password
- 代表选择:radio、checkbox
- 代表按钮:button、submit、reset、image(src属性)
- 特殊的:hidden、file
- type属性
- select
- option
- textatra(默认值在标签体中写)
二. css(可以给html任何标签添加样式)
- 选择器
- 基本选择器:(80%以上)
- id选择器:#id
- 类选择器:.class
- 元素选择器:html的标签名
- 层级选择器:
- 属性选择器:
- 基本选择器:
- [属性=‘属性值’]
- 基本选择器:
- 基本选择器:(80%以上)
- 属性和属性值(样式):
- color
- font-size
- background
- display
- float
- 盒子模型
- margin
- padding
- border
三. javascript(重要) 动态的修改页面的html内存块的代码
- ECMAScript
- 基本语法
- var局部变量
- 函数
- 普通函数function 函数名(参数){函数体}
- 匿名函数function(参数){函数体}
- 事件(js是基于事件,对象和对象驱动的一种脚本语言)
- onclick
- onsubmit(绑定form表单)
- onchange
- onload
- onfocus
- onblur
- onkeyup
- onkeydown
- onmouseover
- onmouseout
- js内置对象
- Date var date = new Date();
- String
- 基本语法
- BOM(五大对象)
- window对象
- 弹框的方法
- alert()
- confirm()
- prompt()
- 定时器
- setInterval(function,毫秒值)----clearInterval()
- setTimeout
- 全局函数
- eval()将字符串解析成js脚本 encodeUrl
- 弹框的方法
- location对象
- href 通过js跳页
- window对象
- DOM
- DOM树:DOM文档在内存中形成一棵树叫DOM树,文档下的任何东西,标签,属性,文本都是这个树上相应的结点
- 通过js相应的API去获得标签元素和操作标签元素
- document.getElementById()
- getElementsByTagName
- getElementsByName
- innerHTML 标签体的内容
- getAttribute()
- appendChild()
四. jquery(重要) 简化js代码的框架 代替js中DOM项操作
-
选择器
- 基本选择器
- id
- class
- 元素
- 层级选择器
- 父元素 子元素 选后代
- 父元素>子元素
- 属性选择器
- 基本选择器[属性= ‘属性值’]
- 表单属性过滤选择器:selected:checked
- 基本选择器
-
jquery的DOM操作 将js的DOM操作进行封装
- html()获得标签写的内容
- val()获得value属性值
- css()修改样式
- attr() 普通属性 prop()返回单值的用 设置被选元素的属性和值
- each()遍历 对象调用 全局调用
- append() appendTo() before() after()
五. bootstrap 前端响应式插件,对html,css,js动态特效的封装
- 导入包jquery、bootstrap.js、bootstrap.css
- 使用栅格系统进行布局
- 拷贝bootstrap代码
底层用的css3的媒体查询@media()
响应式:根据不同的设备显示不同的样式和实现
六. ajax(重要) 异步请求技术 异步加载 局部刷新
- js原生的ajax-----通过本地浏览器中的ajax引擎
- jquery的ajax-----
- $.post(url,data,function,type)
- $.get(url,data,function,type)
- $.ajax({键值对})
服务器端
Web容器Tomcat 中小型web服务器
后端技术
-
servlet
- 生命周期
- 创建:默认第一次访问该servlet。
web.xml修改配置 < load-on-startup> servlet
init(ServletConfig) ServletConfig该servlet初始化的信息 - 销毁:服务器关闭----destory()方法
- 创建:默认第一次访问该servlet。
- 生命周期
-
request
将http请求数据封装- 获得请求行内容
- getMethod()获得请求方式
- getContextPath()获得外部应用名称
- 获得请求头内容
- getHeader(name)
- 获得请求体内容
- getParameter()/getParameterMap
- 转发和域对象
- request.getRequestDisPatcher(url).forward(request,response)
- setAttribute/getAttribute
域:存储数据的局域
根据域对象的不同,导致它访问的范围不同
- 获得请求行内容
-
response
往response内部设置内容,写在内部缓冲区,tomcat拿出进行组装- 设置相应行
- setStatus()
- 设置响应头
- setHeader(name,value)
- 设置相应体
- getWriter().writer() 字符
- getOutputStream().writer() 字节
- 设置相应行
-
jsp、el、jstl
- jsp
- 脚本和注释
- 指令
- page–页面添加属性
- include(静态包含):先合在一起再去翻译
- taglib–引入标签库core
- 内置对象/隐式对象(笔试)
- request
- response
- pageContext
- session
- application
- page
- out
- config
- exception
- jsp标签/动作
- < jsp:include page=""/>动态包含:每个翻译最终把结果合在一起
- el
- 获得域中的数据${}
- 有11个内置对象
- 可以进行运算操作
- jstl
- < c:if test="" >
- < c:forEach items=" " var=" " varStatus="">
- jsp
-
cookie 会话技术
- 怎样向客户端设置cookie
- Cookie cookie = new Cookie(name,value) 不能为中文
- 持久化时间:默认是会话级别的cookie.setMaxAge()
- 携带的路径:不设置时则当前产生该cookie的这个资源所在的路径下的所有资源在访问时携带(面试)
cookie.setPath()
- 怎样获得客户端的cookie
cookie以响应头的方式写到客户端- Cookie[] cookie = request.getCookies()
- cookie.getName()比对名称
- cookie.getValue()
- 怎样向客户端设置cookie
-
session会话技术
-
生命周期(面试) 作用在一次会话中
- 创建:第一次调用request.getSession() 如无则创建
- 销毁:
- 服务器非正常关闭
- session过期 默认30分钟 web.xml配置
< session-config>
< session-timeout>30< /session-timeout>
< /session-config> - 手动销毁session
session.invalidate();
-
session域
-
-
filter(过滤器)
- doFilter(request,response,FilterChain)----chain.doFilter()(String对象)放行
- < url-pattern>配置 完全匹配 目录匹配 后缀名/扩展名匹配
-
listener(监听器)
- 6个与域对象本身相关
- ServletContextListener
- 2个与session中存储的对象相关的
- 绑定与解绑
- 钝化与活化(面试)
- 6个与域对象本身相关
-
ServletContext
一个web应用一个- 获得web应用的全局的参数
< context-param>
< param-name>< /param-name>
< param-value>< /param-value>
< /context-param> - 获得web应用下任何资源的绝对路径
context.getRealPath(相对web应用 路径) - 域对象:整个web应用
- 获得web应用的全局的参数
-
事务
- JDBC事务控制
- DBUtils事务控制
-
ThreadLocal
web层向dao后台传递connection对象
JDBC
DB
DBUtils 对JDBC简单的封装
BeanUtils插件 封装数据
Mybatis
Hibernate
数据库
-
sql分类
-
DDL数据定义语言
- 定义数据库
- 定义数据表–create
-
DML数据操作语言
- insert
- delete
- update
-
DQL数据查询语言
- 单表查询
- select * from user
- select name,age from user
- select salary+5000 as newsalary from user
- select count(*)/sum(salary)/avg(salary) from user
- select * from user where name is (not) null
- select * from user order by age desc,salary asc
- select distinct name from user
- select sum(salary) from user group by groupName
having sum(salary)>10000
having对分组后的数据查询 - select * from user where name like _ / % 一个字符,多个字符
- select * from user limit 0,5 / 5,5 / 10,5
- 多表查询
-
表的关系与设计原则
- 一对一
(有些字段不常用,提高性能,分表使表的功能语义明确) - 一对多
- 多对多
需要中间表
- 一对一
-
查询语句
- 内连接 inner join…on select 表,表,表 where 条件
- 左外连接 left join…on 左表全部数据和左右表有关系的数据
- 右外连接right join…on
-
- 子查询
- 子查询结果是单行单列=
- 子查询结果是多行单列in
- 子查询结果是多行多列from
- 单表查询
-
DCL数据控制语言(权限)
- grant(授权)
- revoke(撤销权限)
-
-
事务
- redis —nosql非关系型数据库
- 安装与启动
- jedis的操作—对redis进行相应的java驱动操作
- Jedis jedis = new Jedis(host主机地址,port6379)
- JedisPool pool = newJedisPool(JedisConfig,host,port)
- 数据结构的操作
- String
- List
- Set
- SortSet
- Hash
- 多数据库16个、广播与订阅、持久化(redis的备份RDB、AOF)
- redis —nosql非关系型数据库
-
其他
- xml 数据交换格式 ,做配置文件
- json数据交换格式
- 基础加强
-
反射
在 字节码文件加载到内存过程中 操作代码,操作内存的代码- 通过反射获取构造方法并使用
- 获取构造方法getConstructors
- 创建对象 newInstance()
- 通过反射获取成员变量并使用
- 获取所有成员 getFields
- 获取单个成员getField
- 修改成员的值
set(Object obj,Object value) :将指定对象变量上此 Field 对象表示 的字段设置为指定的新值。 - 通过反射获取成员方法并使用
- 获取所有方法 getMethods
- 获取单个方法 getMethod
- 暴力访问
method.setAccessible(true);
- 通过反射获取构造方法并使用
-
类加载器
-
注解
-
动态代理(AOP的体现)
Spring IOC 解耦:配置文件+反射+工厂
-