1. 前端基础知识
文件分类
文件类型 | 中文 | 备注 |
---|
SGML | 标准通用标记语言 | HTML和XML的前身 |
HTML | 超本文标记语言 | B/S(浏览器/服务器) |
XML | 扩展标记语言 | 加载数据/配置信息 |
XML(扩展标记语言)
- 装载有格式的数据信息,用于各个框架和技术的配置文件描述
- 特点:
- 扩展名为.xml
- 内容区分大小写
- 标签要成对出现,形成容器,只能有一个
- 标签按正确的嵌套顺序,只有一个根标签
- 标签属性的语法:属性名=”值”,写在头上,空格隔开
- 格式:
<?xml version="1.0" encoding="UTF-8"> - 首行
<class> ... </class> - 标签
<!--注释--> - 注释
<class num="1"> - 标签的属性
java解析xml的方式
- SAX(Simple APT for XML) - 常用于移动设备Android
基于事件的逐行扫描文档,边扫描边解析,只在读时检查数据,不需要把全数据加载到内存中,对于大型文档解析有优势 - DOM(Document Object Model) - 文档对象模型
数据全部存到内存中解析,速度快,dom4j组件方式解析常用
HTML(超文本标记语言)
- 扩展名为.html或.htm
- 内容不区分大小写
- 标签建议成对出现
- 嵌套顺序正确,一个根标签
- 标签具有固定含义: 可视化和功能性
2. JS(JavaScript)(Java脚本)
- 一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型
- 特点:
- 与html和css结合客户端的技术
- 能够动态修改html,css中的属性等内容,形成动态效果
- 解释型语言
- 区分大小写
- 弱类型的语言
- 格式:
window.onload=init;
function init(){
document.getElementById("btn")
}
document.getElementById("btna").onclick=function () {
var arr=new Array(4);
arr[0]="刘备";
arr.push("张飞","关羽");
var x=arr.pop();
console.log("length:"+arr.length+",pop:"+x);
for(i=0;i<arr.length;i++){
console.log(arr[i]);
}
}
3. JSON(JS对象简谱)
- JS对象标记,JavaScript Object Notation,可以当做字符串传输,能被java,python等多种语言处理,通用性高
- 格式:
- json对象:
{key:value,key:value,key:value} - json数组:
{{key:value,key:value,key:value},{key:value,key:value,key:value}}
s['xage']=26;
console.log(s['xname']+","+s2['tsex']);
for...in:遍历语句
for(var i in s){
console.log("i:"+i+",type:"+typeof(i)+","+s[i]);
}
JSON与字符串直接转换
- java向js传输的是json格式的字符串,要转换成json对象才能被js使用
- 代码:
str=eval(str);
eval()
4. JSP(java server page)(Java服务器界面)
- 由servlet改编而成,用静态的html去嵌套jsp脚本,完成动态数据的显示
- /src/main/webapp下创建.jsp文件
jsp运行的工作原理
- 编写.jsp文件
- 编写jsp代码:jsp元素+html/css/javascript
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
//jsp抬头 - 在web容器部署运行时,首次运行jsp会将它翻译成类servlet源文件.java并编译.class
第一次jsp运行比较慢是因为要翻译成.java文件 - web容器执行.class文件
jsp元素
- jsp元素运行级别高于静态元素,如果出现相同属性仅执行jsp元素
- jsp指令,指示页面执行动作属性
<%@指令名 属性="值"...%>
- page指令:规定整个页面的属性特征
- language=”java” ,规定整个页面的编程语言
- contentType=”text/html; charset=UTF-8”,规定当前页面基于html编写
- isErrorPage=”true”,规定当前页面主要用于显示错误信息
- include
- taglib
小脚本
- 作为web服务器运行的java代码,相当于servlet的service()方法
<% java语句,结构或jsp内置元素 %>
- 如果想在jsp中写html部分,需要用<% %>将jsp语句隔开
- jsp内置元素
jsp元素 | 功能 |
---|
out | 页面输出对象,如out.print() |
page | 得到整个页面对象 |
pageContext | 得到页面的上下文 |
config | 得到web配置信息web.xml |
request | 代表请求 |
session | 代表会话 |
application | 代表应用 |
response | 代表响应 |
exception | 代表运行错误对象,仅当jsp的page指令为isErrorPage=”true”时可用 |
全局声明
- 语法:
<%! 全局属性或方法 %>
- 写在声明中的全局声明会当做类的属性/方法
- 写的脚本中的局部变量/方法会写入service方法中
jsp表达式
- 语法:
<%=表达式%>
- 用于显示表达式的值页面
jsp注释
- 语法:
<%--注释内容 --%>
- 不能在html客户端源码中查看
jsp动作标签
<jsp:标签名称 属性="值"></jsp:标签名称>
<jsp:include
<jsp:include page="x1.jsp"></jsp:include>
<%@include%
<%@include file="x1.jsp" %>
<jsp:forward page="跳转的页面"></jsp:forward>
5. jsp开发模式
- Model分类
- ModelI:jsp+javaBean
- MdoelII:jsp+servlet+javaBean,mvc
- EL(expression language)
- 用于输出存储范围对象
- 语法:
表达式常量表达式,
表
达
式
常
量
表
达
式
,
{2*5}
- 获取存储在jsp上下文四个存储范围中的对象,依次查找当前页面和三块存储区,可简化javaBean对象属性的获取
- 范围关键字
${pageScope.x.sage}
- pageScope
- requestScope
- sessionScope
- applicationScope
- 判断空对象,empty,not empty
- 判断大小,ge,gt,le,lt
6. jstl(jsp标准标签库语言)
- 目的是减少jsp上小脚本的数量,作为sun公司推出的jsp辅助技术
- 分类:
- 核心库:控制程序流程,存储变量的使用和输出
- jstl sql库:直接在页面上使用sql语句
- jstl fmt库:按指定形式格式化数值
- 使用:
- maven中添加jstl依赖库
- 在jsp页面上通过
<%@taglib%>
指令引入jstl对应类型库 - 在jsp中使用具体的标签
- 案例:
输出控制
- uri=依赖库,引入的是当前标签库的标识
- prefix=前缀,代表在jsp中代码当前引入的标签库的标识
- out标签:向页面输出
- value:引用EL表达式将存储猚中的对象引出
- escapeXml:默认true,表示输出内容有特殊字符也不识别直接打印出来
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>//写在首行
<%
String str="<h1>你好</h1>";
request.setAttribute("xw", str);
%>
${xw}
<hr>
<c:out value="${xw}" escapeXml="false"></c:out>
循环
- var,表示当次循环对象的引用
- items,使用EL表达式在四个存储范围加载集合对象
<c:forEach var="op" items="${ss }">
<tr>
<td>${pageScope.op.sname}</td>
<td>${op.sage}</td>
<td>${op.hobby}</td>
</tr>
</c:forEach>