JSP笔记
l JSP
- Ø 本质:Servlet
- Ø JSP运行前需要翻译,翻译之后的文件就是Sevlet,简化Servlet开发
l JSP中的3种脚本
1.<%! Java代码 %> 相当于成员变量、方法
2.<%= Java代码 %> 相当于方法的参数
3.<% java代码 %> 循环判断等操作
l 静态引入:<%@ include file=”xxx.jsp” %>
- Ø 合并在一起翻译、编译
l 动态包含:<jsp:include page=”xxx” />
- Ø 单独编译引入的页面,把最终的输出结果合并
l 修改JSP的默认编码方式
l JSP的运行原理
l jsp中的3个指令:
1) <%@page 属性名="值" 属性名="值" 属性名="值"%> 对页面中的编码方式进行设置、导入java类等操作
2) <%@include file="xxx"%>
3) <%@ taglib%> 引入标签库!
l EL表达式
- Ø 主要用来简化页面的取值操作
- Ø 语法:${表达式}
l 算术运算符
l 关系(比较)运算符
l 逻辑运算符
l 其他操作符
1) 三目(三元)运算符
2) 空操作符:empty
${ str == "" || str == null } ==> ${ empty str }
l 内置对象
u 两个重要内置对象:
1) xxxScope 作用域
2) param ${param.参数名} ==> <%=request.getParameter(“参数名”)%>
3) pageContext 获取其他内置对象,主要用来获取项目名(项目地址) ${pageContext.request.contextPath} ==> <%=request.getContextPath()%>
4) cookie 取值:${ cookie.cookie的名字.value } 或其他属性(名字)
l 4个作用域
- Ø Page --< request--< session--< application
- Ø 用EL表达式取值的时候,不指定作用域,则默认从page开始找
1 <% 2 3 request.setAttribute("name", "张飞"); 4 5 session.setAttribute("name", "关羽"); 6 7 %> 8 9 ${ name } <br/> //张飞 10 11 12 13 ${ requestScope.name }<br/> 14 15 ${ sessionScope.name }<br/>
- Ø 设置属性
Map
1 <% 2 3 Map<String,String> m = new HashMap<String,String>(); 4 5 m.put("aa", "11"); 6 7 m.put("bb", "22"); 8 9 m.put("aa.bb", "11.22"); 10 11 request.setAttribute("m", m); 12 13 %> 14 15 ${ m.aa }<br/> 16 17 ${ m["bb"] }<br/> 18 19 ${ m.aa.bb }<br/> 20 21 ${ m["aa.bb"] }<br/>
自定义对象
1 <% 2 3 User user = new User(); 4 5 user.setUsername("刘备"); 6 7 request.setAttribute("user1", user); 8 9 %> 10 11 <!—获取对象的属性值,底层调用的是getXXX()方法--> 12 13 ${ user1.username }<br/> 14 15 ${ user1['username'] }<br/>
集合、数组
1 <% 2 3 List<String> list = new ArrayList<String>(); 4 5 list.add("111"); 6 7 list.add("222"); 8 9 list.add("333"); 10 11 Object[] arr = list.toArray(); 12 13 request.setAttribute("list", list); 14 15 request.setAttribute("arr", arr); 16 17 %> 18 19 ${ list[1] } 20 21 ${ arr[2] } 22 23 <!-- 不会报越界错误,什么都不输出 --> 24 25 ${ arr[3] }
JSTL标签库(JavaServer Pages Standard Tag Library,JSP标准标签库)
l 作用:代替java脚本,完成判断和循环等操作,通常和EL一起使用
l 步骤:
1) 导包
2) 新建jsp,使用taglib指导引入标签库
- 核心标签库core
- 格式化标签库fmt
- 函数库function
- 其他已经淘汰的库
3) 语法
uri: 引入的标签的地址
prefix: 给标签起个别名
l 附加内容
- Ø JQuery
一个javaScript框架(代码库),简化JS开发
作用:优化HTML文档操作、事件处理、动画设计和Ajax交互
基本用法:
- 事件绑定
$(“#XX”).click(function(){
alert(“xxx”);
});
- 入口函数
$(function(){
alert(“xxx”);
});
window.onload 只能定义一次,如果定义多次,后边的会将前边的覆盖掉, $(function)可以定义多次的。