清单为复习课时老师说的重点,高亮部分为PPT上标明“考”的部分。全部整理自PPT,仅供参考。
JavaEE重点清单
- html
- form表单内的基本type及其属性
- css
- class和id的基本概念和区别
- 文本段落属性(背)
- 框架集基本概念(如何分割)
- 限定符(正则表达式)
- 规划界面(页面布局)
- 修饰符 final
- 集合与泛型
- MVC
- 权限控制filter
- JSP运行原理
- JavaBean
Review整理
一、HTML+CSS+JS
Table
表格由行、列、单元格组成,一个表格是由<table> <tr> <td>或<th>
标记来定义的,分别表示表格、表格行、单元格。th表示为表头。可用于布局。
form
form元素是块级元素,其前后会产生换行。用于向服务器提交数据。
属性名 | 含义 |
name | 表单对象名称 |
method | 发送form-data的HTTP方法,分为get和post |
action | 当提交表单时向何处发送表单数据 |
target | 规定在何处打开action 中的URL |
form的type主要有9种类型
名称 | 格式 | 说明 |
文本域 |
| size:此区域显示的尺寸大小与maxlength:输入的最大字符数 |
密码域 |
| 用户输入密码时用“*”代替用户输入的内容 |
单选按钮 |
| checked:单项按钮默认状态是否被选中;多个互斥的单选按钮设置相同的name值 |
复选框 |
| checked同上,可设置相同name值也可设置不同name值 |
提交按钮 |
| 将表单内容提交给服务器的按钮 |
取消按钮 |
| 将表单内容全部清除,重新填写的按钮 |
图像按钮 |
| 图像源文件名由src属性指定 |
文件域 |
| 上传文件 |
隐藏域 |
| 用户不能在其中输入信息,用来预设某些要传递的信息 |
下拉列表框
<select name="" size="" multiple>
<option value="" selected></option>
<option value=""></option>
</select>
多行文本框
<textarea name="" 设置输入域的行数
rows="" 设置输入域的列数
cols=""
wrap="off|virtual|physical"> 设置是否自动换行
</textarea>
CSS
选择器
元素(类型)选择器:直接对元素进行选择,如html{color:black;} h1{color:blur;}
,对在尖括号内的元素直接进行选择即可,尖括号内的元素可以是自定义的元素。
选择器分组:即可以将选择器组合起来一起设置。
通配符选择器:使用通配符进行选择 *{color:red;}
声明分组:即将所有要设置给同个元素的属性合在一起写。
类选择器:例如<h1 class="important">
,类即为important,可以声明为多个类。
ID选择器:区别于类选择器,前面有#,且不引用class属性的值而引用id属性中的值。
类选择器与ID选择器的区别 ID选择器只能在文档中使用一次;不能使用ID词列表;ID能包含更多含义
引入CSS
链接式
<link href=".css文件路径"
type="text/css"
rel="stylesheet">
行内式
<p style="font-size:20px">
正文内容
</p>
内嵌式
<head>
<style type="text/css">
p{color:white;font-weight:bold;}
</style>
</head>
导入式
<style type="text/css">@import url(.css文件路径)</style>
引入方式 | 优点 | 缺点 |
链接式 | 易维护、可复用、利抓取、分线程加载 | |
行内式 | 加载速度快 | CSS与HTML没有分离 |
内嵌式 | 页面内可复用 | 页面间无法复用 |
导入式 | 页面全部下载完再被加载、IE5以上识别、DOM不可控 |
文本段落属性
text-decoration 文字修饰
vertical-align 垂直对齐
text-align 水平对齐
text-indent 文本缩进
line-height 文本行高
white-space 处理空白
DIV的用法
用于组合块级元素,而且本身是一个块级元素,前后会被放置换行符。优点:结构清晰、方便组织、可复用。
框架集Frameset
Frameset将页面分为多个页面。主要作用是内容区局部刷新。
窗口的分割与设置 和 子窗口的设置
窗口的分割与设置
<frameset rows="高度1,高度2..."
cols="宽度1,宽度2...">
<frame src="网页1"></frame>
<frame src="网页2"></frame>
</frameset>
子窗口的设置
<frame src="html文件位置"
name="子窗口名称" scrolling="yes|no|auto"></frame>
JavaScript
DOM:文档对象模型,把html文档当作一个对象来看待,提供接口API,操作所有的节点即document对象。如querySelector(solectors)
返回第一个匹配选择器的文档元素,getElementById()
通过ID查找元素。
BOM:浏览器对象模型,描述了与浏览器进行交互的方法和接口,可以对浏览器窗口进行访问和操作即Windows对象。如window.location.href="网页路径"
实现跳转。
外部引用:<script type="text/javascript" src="外部相对bai地址du.js"></script>
内嵌引用:<script type="text/javascript"></script>
正则表达式
[ABC] 匹配[…]中的所有字符
[^ABC] 匹配除了[…]中的所有字符
[A-Z] 匹配所有大写字母,[a-z]表示匹配所有小写字母
. 匹配除换行符(\n、\r)之外的任何单个字符
\s 匹配所有空白符 \S非空白符包括换行
\w 匹配字母、数字、下划线,等价于[A-Z a-z 0-9]
限定符
HTML5
新特性:更多的语义标签;本地存储,包括localStorage和sessionStorage;设备兼容,提供前所未有的数据与应用接入开放接口;更有效的服务器推送技术如Server-sent Event和WebSocket;支持网页端Audio、Video等多媒体;基于SVG、Canvas等的3D功能。
规划界面
H5
广义上,H5指的是HTML5;狭义上解释,H5就是——互动形式的多媒体广告页面。随着 HTML5 正式发布节点那两年,还有个很重要的概念 “响应式设计” 被提出并被广泛接受。期间推出了有很多基于这个概念的前端框架,最有影响力的就是Bootstrap 框架。
H5的主要形式包括平面内容展示、交互内容展示、互动性故事、互动性游戏。
二、Java
简介
JRE:包括JVM和JAVA核心类库和支持文件,是Java的运行平台。
JDK:包含JRE,提供了开发Java应用的各种工具,如编译器和调试器。
JVM:是JRE的一部分,将Java字节码映射到本地的CPU的指令集或OS的系统调用。
继承
特点:具有层次结构、子类继承父类的属性和方法
优点:1.代码可重用;2.父类的属性和方法可用于子类;3.可以轻松的自定义子类;4.设计应用程序变得简单
子类构造时先调用父类构造方法再调用子类构造方法,调用父类构造方法使用关键字super。
多态
把一个对象不当做它所属的特定类型来对待,而是将其当作其基类的对象来对待(generic),这使得人们可以编写出不依赖于特定类型的代码。当向对象发送消息时,被调用的代码直到运行时才能被确定,编辑器确保被调用方法的存在,并对调用参数和返回值执行类型检查,但是并不知道将被执行的确切代码。
包括方法重写和方法重载。不同的实例执行不同的操作。
重载:类中有多个具有相同名称的方法,具有不同的参数列表。
重写:子类和父类方法具有相同的名称和类型,子类对象调用子类中的重写方法,super.methodName()
调用父类方法。
修饰符
访问修饰符:private、default、protected、public
方法修饰符:static、final、abstract
接口与抽象类:interface、abstract
final:1.修饰类:final修饰的类不能被继承;2.修饰方法:final修饰的方法不能被重写;3.修饰变量:final修饰的变量为常量。
abstract:抽象类不能被实例化;构造方法和static不能是抽象的;父类的抽象方法往往在子类中实现。抽象方法只有声明没有方法体。
自动装箱/拆箱
自动装箱:基本数据类型直接赋给对应的包装类变量,或者赋给Object类型的变量。
自动拆箱:把包装类对象直接赋值给一个对应的基本类型变量。
集合和泛型
- Array
- 特点:1.随机访问元素效率高;2.元素的类型识别;3.可持有primitives;4.容量无法修改
- 对象数组持有reference,primitives数组直接持有值。
- Vector
- 具有类似数组的数据结构,且是动态的
- 可以存放一定数量的元素
- 容量可以递增
- ArrayList
- 长度可变的对象引用数组,类似于动态数组
- 继承AbstractList并实现List接口
- 随着元素的添加啊,数目增加,列表扩展
- 访问和遍历对象时提供更好的性能
- LinkedList
- 创建链表数据结构
- HashMap
- 实现Map接口
- 用于存储键值映射关系
- 不保证元素的存储顺序
三、MVC
MVC基本概念
M:Model,通常为MySQL数据库层。
V:View,视图层,本课程中为JSP页面。
C:Controller,控制器,通常为Servlet类,处理JSP页面需要的页面逻辑。
Servlet
- 是用Java编写的与平台和协议无关的Server端程序,采用*”请求-响应“*模式提供Web服务。
- 它可接收Web浏览器或其他HTTP客户程序发出的请求,生成动态Web页面或担当HTTP服务器上的数据库和应用程序的中间层。(控制器)
创建Servlet的方法:1.实现Servlet接口;2.继承GenericServlet;3.继承HttpServlet
Servlet并不是专门用于处理HTTP请求的。
继承GenericServlet:抽象类GenericServlet,提供除service()方法外的其他4种方法的简单实现。它定义了一个通用的,不依赖具体协议的servlet。
继承HttpServlet:继承自GenericServlet,针对于HTTP协议定制。在service方法中把参数直接转化为HttpServletRequest和HttpServletResponse。
配置Servlet,在web.xml文件内进行。
<servlet>
<!--Servlet注册的名字-->
<servlet-name>LoginServlet</servlet-name>
<!--Servlet的全类名-->
<servlet-class>servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<!--对应上面的Servlet注册名-->
<servlet-name>LoginServlet</servlet-name>
<!--具体的访问路径;.代表当前WEB的根目录-->
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
或使用注解,在servlet类上加@WebServlet("/LoginServlet")
HttpServletRequest常用方法
方法名 | 解释 |
| 获取请求中name指定的参数 |
| 返回请求中name指定的参数值数组getMethod() |
| 返回请求中所有参数名字的集合 |
| 返回接受请求的服务器名字 |
| 返回请求的servlet的URL |
| 返回请求中所有属性名字的合集 |
| 返回指定name的属性值 |
| 设置属性name的值为value |
| 返回客户端发送的cookie |
| 返回客户端相关的session,若无则返回null |
| 返回和客户端相关的session,若未给客户端分配session,则创建一个session并返回 |
HttpServletResponse常用方法
方法名 | 解释 |
| 将指定的Cookie加入到当前的响应中 |
| 将指定的名字和值加入到响应的头信息中 |
| 返回一个布尔值,判断响应的头部是否被设置 |
| 对指定的URL进行编码 |
| 使用指定状态码发送一个错误到客户端 |
| 重定向到其他页面 |
| 用给出的名字和值设置响应的头部 |
| 给当前响应设置状态码 |
| 设置响应的MIME类型 |
Filter
主要功能
- 在servlet被调用之前截获
- 在servlet被调用之前检查servlet request
- 根据需要修改request头和request数据
- 根据需要修改response头和response数据
- 在servlet被调用之后截获
配置
<filter>
<filter-name>RequestFilter</filter-name>
<filter-class>servlet.RequestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>RequestFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
doFilter方法的使用
private static final String[] dir = {
“/student”,//学员访问的功能页面所在文件夹
“/coach”,//教练访问的功能页面所在文件夹
“/admin”//管理员访问的功能页面所在文件夹
};
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
//此处为解决编码的Filter 在到达servlet之前统一设置编码格式
try {
request.setCharacterEncoding(“utf-8");
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding(“utf-8");
chain.doFilter(request, response);
} catch (Exception e) {
e.printStackTrace();
}
//此处为控制权限部分
HttpServletRequest req = (HttpServletRequest) request;
HttpSession session = req.getSession();
String user = (String) session.getAttribute(“user”); //看用户是否已登陆
String priv = (String) session.getAttribute(“priv”); //看用户的权限类别
//得到访问的文件夹开头的访问路径
String url = req.getRequestURI().substring(req.getContextPath().length());
for (int i = 0; i < dir.length; i++) {
if (url.startsWith(dir[i])) { //查看所访问的文件夹是否属于保护之列
if (user == null) { //在保护之列,但是用户未登陆,跳转至首页面
request.getRequestDispatcher("index.jsp").forward(request, response);
} else if (Integer.parseInt(priv) != i) {
//已登陆,但是访问的文件夹与权限类别不一致,跳转至错误界面
request.getRequestDispatcher(“error.jsp").forward(
request, response);
}
}
}
chain.doFilter(request, response); //一切正常,跳转至用户欲访问的界面
}
也可以设置session
HttpSession session = request.getSession();
if(username.equals("admin") && password.equals("123")){
session.setAttribute("priv", “2");
session.setAttribute("user", username);
request.getRequestDispatcher(
"/admin/main.jsp").forward(request, response);
}
else if(username.equals(“coach") && password.equals("123")){
session.setAttribute("priv", "1");
session.setAttribute("user", username);
request.getRequestDispatcher(
"/coach/main.jsp").forward(request, response);
}
转发与重定向
- RequestDispatcher接口
- forward:将请求转发给服务器上另一个servlet、jsp或HTML文件
- include:用于在响应中包含其他资源的内容
- 获取
- ServletRequest接口中的getRequestDispatcher(String path)方法
- 可以不以"/"开头
- ServletContext接口中的getNamedDispatcher(String path)和getRequestDispatcher(String path)方法
- getNamedDispatcher只能以“/”开头
- 区别
转发 | 重定向 |
地址栏是初次发出请求的地址 | 不是初次发出请求的地址,为最后响应的地址 |
在最终servlet中,request对象和中转的request是同个对象 | 不是同个对象 |
只能转发给当前WEB应用的资源 | 可以重定向到任何资源 |
/代表的是当前WEB的根目录 | /代表的是当前WEB站点的根目录 |
JSP
将Java脚本嵌入HTML网页中,运行在服务器端。JSP实际上是servlet,运行时被编译成servlet,主要优势是实现了页面与内容的分离。
运行原理
客户端向带有JSP引擎的web服务器发起请求,服务器根据请求加载相应的JSP文件。JSP引擎将文件转化为Servlet代码,后编译为Class文件,最后将执行结果响应给客户端。
JavaBean
特点:
- 是一个public类;
- 必须有一个无参数的构造函数;
- 若干私有属性
- 获取或设置属性的方法
- 完成特定功能的方法
运行原理:JSP页面通过JavaBean调用数据库数据,执行业务逻辑
使用方法
<jsp:useBean id="name" class="className"
scope=page|request|session|application/>
id:JavaBean的实例名
class:确定JavaBean的实现类
scope:指定JavaBean实例的作用范围
为Bean中属性赋值
<jsp:setProperty name="JavaBean实例名" property="*"/>
如:<jsp:setProperty name="beanName" property="propertyName" value="value"/>
获取Bean中属性的值
<jsp:getProperty name="JavaBean实例名" property="pname"/>