1.JavaScript(DOM)
- JS是脚本语言,不是编程语言,不需要编译,浏览器会自己识别。
- JavaScript组成
- ECMAScript:核心,定义JS的基本语法和类型等。
- BOM:浏览器对象模型,JS通过BOM操作浏览器窗口。
- DOM:文档对象模型,JS通过DOM操作HTML页面。
- DOM:把整个HTML文档当做一个DOM树,每一个标签相当于一个元素(Element)。
- getElementById();通过id获取到一个元素。(返回值对象)
- getElementByName();通过属性(name)获取到所有是该属性的元素。(返回值集合)
- getElementByTagName();通过标签名获取到所有该标签的元素。(返回值集合)
- 当获取到元素的时,能够调用一些方法或者属性去实现功能。(append,selected)
2.JQuery(选择器)
- JQuery是JS的一个函数库,能够简化JS的代码,完成编程(非常支持链式编程)。
- 学习JQuery的入门是要掌握如何获取到自己想要的对象,这里就需要用到选择器,有了选择器能够避免像JS的代码那样繁琐,而且链式编程能够在获取的同时执行方法,或者修改属性。
- 在标签中,之后就能够使用JQuery。
- JQuery的页面加载可以重复执行,没有冲突
- $(function(){
//代码
});
- $(function(){
- JQuery的基本选择器:
- ”#id”,id选择器,获取该id对应的元素
- “.class”,类选择器,获取同一类名元素的数组
- “div”,标签选择器,获取同一标签名元素的数组
- JQuery的过滤选择器:
- :first ,第一个
- :last,最后一个
- :not(…) ,删除指定内容。例如:1234 , not(3) ,结果为124
- :even,索引号偶数,从0开始。
- :odd,索引号为奇数,从0开始。
3.MySQL(大致的SQL语句)
- MySQL是一个免费的小型数据库,用户通过SQL(结构化查询语言)语句操作数据库。它是Java开发常用库,同时还有Orcale数据库。
- SQL语句对数据库进行操作
- CREATE DATABASE 数据库名;(创建数据库)
- USE 数据库名;(使用数据库)
- DROP DATABASE 数据库名;(删除数据库)
- ALTER DATABASE 数据库名 CHARACTER SET utf8;(修改数据库字符集)
- SHOW DATABASES;(查看所有数据库)
- SQL语句对数据库表进行操作
- CREATE TABLE 表名 (字段名 数据类型 [约束],字段名 数据类型 [约束]);(创建表)
- SHOW TABLES;(查看所有数据库)
- DESC 表名;(查看表结构)
- DROP TABLE 表名;(删除表)
- SQL语句对数据库表记录进行操作
- INSERT INTO 表名 VALUES (字段数据,字段数据);(插入一条记录)
- UPDATE 表名 SET 列名=列值,列名=列值 [条件];(根据条件修改一条记录)
- DELETE FROM 表名 [条件];(根据条件删除记录)
- SELECT * FROM 表名 [条件];(根据条件查询记录,具体要查询什么看条件)
4.JDBC(能使用DBUtils工具类)
- JDBC:Java DataBase Connectivity。Java数据库连接。
- 学习JDBC是为了方便操作数据库,因为Java提供了一个规则,各大数据库厂商负责实现,只要会了规则,就能够操作数据库,不需要知道数据库的底层是如何实现的。(降低学习成本)
- DBUtils:第三方数据库工具类。
- 它底层自己实现了:1.注册驱动。2.获取连接。3.执行语句。4.释放资源,这些功能。同时执行的语句是用调用者自己实现,查询或者变更的返回值也是由调用者自己实现(ReslutSetHandler接口),需要什么返回值自己去创建一个。
- BDUtils官方提供了几个实现ReslutSetHandler实现类。
- ArrayListHandler:将查询到一条封装到一个数组中,将查询到的多个封装到了装有数组的List集合中。
- ArrayHandler:将查询到的一条记录,封装到一个数组当中。
- BeanListHandler:将查询到的一条记录封装到一个对象中,将查询的多条记录分组到一个装有对象的List集合中。
- BeanHandler:将查询到的一条记录,封装到一个Java对象中。
- MapListHandler:查询到多条记录,封装到一个装有Map的List集合中。
- MapHandler:将查询到的一条记录,封装到一个Map集合中。
- DBUtils使用方法。
- QueryRunner对象,创建这个对象需要传如一个连接池(如果没有连接池,那么就要在它调用update或者query方法的时候,把一个连接作为参数传入)
- sql语句,调用者要在数据库中查找或者变更的语句。(可以使用?去作为占位符,在执行update或者query的时候在把真正的参数传入)
- update或者quert方法,当你想对数据库进行变更的时候使用update方法,一般会返回一个int类型的数据,是告诉调用者执行这条sql语句,数据库中有多少行数据库被改变了。当你想对数据库中的内容进行查询的时候使用query方法,这个方法的返回值由调用者本身决定,可以使用DBUtils提供的相关类,获取到自己想要的返回值。
5.Servlet(Servlet生命周期,ServletContext域对象)
- Servlet的创建
在服务器启动的时候创建Servlet实例,同时调用init()方法。*Servlet能够优先加载,在web.xml中设置,*但是参数不能是1(被Tomcat占用),类型是数字。
- Servlet的调用
当服务器被访问的时候,Servlet被调用,同时执行service()方法,方法参数是request(请求)和response(响应),用来接收浏览器发来的请求和给浏览器一个响应。service()方法会根据浏览器的请求方式调用doGet或者doPost方法。
- Servlet的销毁
当服务器关闭或者项目从服务器中移除的时候,Servlet实例被销毁,同时调用destroy()方法。
- ServletContext域对象的概述
这个对象能够存储数据,但是这个数据有一个作用范围。(就是整个web项目,所有人共享一个实例)
- ServletContext的创建
当服务器启动的时候,这个类的实例被创建,同时一个web项目只有一个实例。
- ServletContext的销毁
当服务器关闭或者项目从服务器中移除的时候被销毁。
- 实用方法:
- InputStream | getResourceAsStream(String path)
- 读取一个文件,返回一个流
- String | getRealPath(String path)
- 读取一个路径,返回磁盘绝对路径
- 绝对路径的初始目录是项目文件中WebContent(发布到Tomcat会改变项目名称)
6.Request&Response(请求、响应基本API)
- HttpServletRequest:客户端向服务端发送的内容。
- 能够获取客户端的相关信息。
- 能够获取客户端的请求参数数据。(重要)
- String | getParameter(String name)
- 接收一个名称对应一个value的值
- String[] | getParameterValues(String name)
- 接收一个名称对应多个value的值
- Map | getParameterMap()
- 接收请求参数,把所有参数封装到一个Map集合中。Map的key是请求参数的名称,value是请求参数的值
- 能够作为域对象存储数据。(重要)
- void | setAttribute(String name,Object value);
- 设置属性值
- Object | getAttribute(String name);
- 获取属性值
- void | removeAttribute(String name);
- 移除属性值
- HttpServletResponse:服务端向客户端发送的内容。
- 能够设置响应头
- void | setHeader(String name,String value)
- 设置一个key对应一个value的头信息
- 能够设置响应体(把服务器的数据输出到浏览器)
- ServletOutputStream | getOutputStream()
- PrintWriter | getWriter()
7.Cookie&Session(会话)
- Cookie:客户端会话技术,将数据保存到客户端浏览器。
- Session:服务器会话技术,将数据保存到服务器端。
- 一个用户从打开浏览器开始访问网站,浏览各个网页,访问完成之后将浏览器关闭的整个过程。
- Cookie的分类
- 会话级别的Cookie:默认的,关闭了浏览器以后,Cookie就被销毁了。
- 持久级别的Cookie:设置Cookie的有效时长,Cookie就会保存到客户端的硬盘上。
- Cookie的API(常用)
- String | getName();获取Cookie名称
- String | getValue();获取Cookie值
- void | setPath(String path);设置Cookie的有效路径。如果设定了Cookie的有效路径:/aaa/bbb,如果访问/ccc,这个时候不会携带设置的Cookie过来,如果访问有效路径中的资源,都会携带这个Cookie带来。
- void | setMaxAge(int expiry);设置Cookie 的有效时长。单位:秒。(如果将值设置为0,手动清空持久性的Cookie。条件:路径必须一致。)
- Session的API(常用)
- 通过request中的getSession(),返回一个HttpSession对象。
- void | setAttribute(String name,Object value) 向Session中保存数据。
- Object | getAttribute(String name) 获取Session中的数据。
- void | removeAttribute(String name) 移除Session中的数据。
- void | invalidate() 销毁Session
8.JSP&EL&JSTL(JSP语法)
- JSP是一个服务端页面,推出它的原因是因为Serlvet在显示数据和HTML的时候自身有缺点,能够完成的功能需要非常的代码,所以SUN公司要推出。
- EL是JSP的表达式,能够在一定程度上简化JSP代码。JSTL是JSP的标准标签库,提供了简单实现功能的标签。
- <% Java代码 %>:其中的代码被当做是service方法内部的代码,所定义的都是局部变量。
- <%= Java代码 %>:其中的代码是service方法中的out.print()中的内容,打印在页面显示上。
- <%! Java代码 %>:其中的代码是被当做在Servlet类中的代码,定义的都是成员变量。
- JSP的内置对象指的是可以在JSP中直接使用的对象。JSP中提供了9个内置对象。
内置对象 | 真实对象 |
---|---|
request | HttpServletRequest |
response | HttpSerlvetResponse |
session | HttpSession |
application | ServletContext |
page | Object |
pageContext | PageContext |
out | JspWriter |
config | ServletConfig |
exception | Throwable |
9.MySQL&JDBC(分页的操作)
- 【物理分页】(使用较多)
- 指的是通过数据库的SQL语句实现分页的效果。
- 优点:数据量很大,不会导致内存溢出。
- 缺点:与数据库交互次数比较多。
- 【逻辑分页】
- 指的是一次性将数据全部取出,存放到一个集合中List,通过List集合中的方法截取数据。
- 优点:与数据库交互次数很少。
- 缺点:如果数据量很大,导致内存的溢出。
- MySQL数据库有关键字,能够让数据库实现分页查询
- limit ?,? ; 第一个参数是从哪个记录开始查询,第二个参数是查询多少个记录。
- 需要有一个类去表示页。(存储了各种分页的属性)
- page:当前页。
- pageSize:每页显示记录数。
- totalCount:总共有多少条记录。
- totalPage:总共记录页数。
- list:当前也所显示的记录集合。
- 在浏览器显示时,每点击一个页面就向数据库查询一次,并返回该页面的显示记录,然后到浏览器上再显示。
10.Listener&Filter(过滤器的知识)
- Listener的概述
- 是一个Java对象,能够监听其他Java对象的变化。
- 事件源、监听器、绑定监听器、触发事件。
- Listener的分类:
- 一类:监听Servlet中的三个域对象的创建和销毁的监听器。
- 二类:监听Servlet中的三个域对象的属性变更的监听器。
- 三类:监听Servlet中的HttpSession中的JavaBean的对象状态的改变监听器。
- Filter的概述
- Filter:能够拦截从客户端向服务器发送的请求。
- FilterChain过滤器链
- 能够控制过滤器,让它是否执行过滤目标资源的能力。