第三节课笔记

jsp元素

脚本元素

1.jsp声明

可以用来声明变量或者方法
语法:<%! 声明1;声明2%>

<%! int flag=1;
int flag1=2;
public int getFlag(){
	return 2;
}
%>

2.表达式

可以用来访问Java变量或者表达式
语法:<%=表达式 %>

<%= flag %>
<%= getFlag() %>

3.脚本片段

插入任意有效的Java程序片段
语法:<% %>

<% user[] arr=new user[6];
for(int i=0;i<5;i++){
	user u=new user();
	u.setUsername("u_"+i);
	arr[i]=u;
}
request.setAttribute("arr",arr);
%>

补充:有时候需要导入包
语法:<%@ page import=“url”>

4.注释

jsp注释:<%-- --%>
HTML注释:<!-- -->

指令元素

1.page指令

作用于整个页面,定义了与JSP页面相关的属性。
语法:<%@ page 属性1="" 属性2=""%>

<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>

2.include指令

经常用于包含页面底部或者首部等不经常变化的部分。
发生在jsp文件被转换成servlet的时候引入文件。
用来包含其它文件,可以是jsp,html或者文本文件。
语法:<%@ include file=“url”%>

<%@ include file="second.jsp" %>

3.taglib指令

定义一个标签库以及其自定义标签的前缀。指定JSP页面所使用的标签库,通过该指令可以在JSP页面中使用标签库中的标签

<!-- core:核心库 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!-- fmt:格式化库 -->
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

补充:需要导入两个架包:jstl-1.2.jar和standard-1.1.2.jar

动作元素

1.jsp:include
用来包含静态和动态的文件。把指定文件插入正在生成的页面。
发生在页面被请求的时候。

属性:

Page 包含的文件路径

Flush 定义在包含资源前是否刷新缓存区

2.jsp:userBean

具体看示例:

<!-- useBean用法 -->
<jsp:useBean id="user" class="bean.user"></jsp:useBean>
<!-- 设置 -->
<jsp:setProperty property="age" name="user" value="33"/>
<jsp:setProperty property="username" name="user" value="李四"/>
<jsp:setProperty property="gender" name="user" value="男"/>
<!-- 输出 -->
name:<jsp:getProperty property="username" name="user"/>
age:<jsp:getProperty property="age" name="user"/>
gender:<jsp:getProperty property="gender" name="user"/>

补充:property属性的值,与你的Javabean中一致。

3.jsp:forward

把请求转到另一个页面。

jsp:param 它用来作为forward和include标签传递参数

first.jsp:

<jsp:forward page="third.jsp">
<jsp:param value="29" name="age"/>
</jsp:forward>

third.jsp:

<%= request.getParameter("age") %>

内置对象

request

HttpServletRequest 代表客户端的请求信息,主要用于接收通过HTTP协议传送到服务器的数据。(包括头信息,系统信息,请求方式以及请求参数等)
request对象的作用域为一次请求

response

HttpServletResponse 代表对客户端的响应,将JSP容器处理过的对象传回到客户端。
Reponse的作用域是JSP

out

Javax.servlet.jsp.jspwriteout
用于在web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。数据输出完毕以后,要及时关闭输出流。
out对象是一个 输出流,用来想客户端输出数据。

pagecontext

Javax.servlet.jsp.PageContext
对象的作用是取得任何范围的参数,可以访问page、request、session、application范围的变量。
pageContext对象的创建和初始化都是由容器来完成的。

session

Javax.servlet.http.HttpSession
在一个jsp页面被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。
当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器通过session知道这个客户。
Session对象内部里使用Map类来保存数据。

application

Javax.servlet.ServletContextApplication
将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。

config

Javax.servlet.ServletConfigconfig
取得了服务器的配置信息。主要用于获取servlet的初始化参数信息。

Cookie

Web服务器保存在用户硬盘上的一段文本。Cookie允许一个web站点在用户电脑上保存信息并且随后再取回。

exception

Java.lang.ThrowableException 用于显示异常信息。

补充:exception使用

用errorPage和isErrorPage设置

first.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="error.jsp" isELIgnored="false"%>

error.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true"%>

EL表达式

1.EL表达式默认开启,也可以使用isELIgnored设置,true表示关闭,默认是false

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="error.jsp" isELIgnored="true"%>

2.EL的内置对象

一共11个内置对象,不一一列举。

3.EL表达式读取四大域

${xxxx},全域查找名为xxx属性,查找顺序是page>request>session>application,如果不存在,输出空字符串

${pageScope.xxx}
${requestScope.xxx}
${sessionScope.xxx}
${applicationScope.xxxx}

4.EL表达式读取javabean

看示例:

${user.username }
${work.job }

5.EL表达式读取数组和集合(list,map)

1)访问数组:{数组名[index]}

2)访问list: {list名[index]}

3)访问map:{map对象.key}

示例:

<!--数组-->
<% user[] arr=new user[6];
for(int i=0;i<5;i++){
	user u=new user();
	u.setUsername("u_"+i);
	arr[i]=u;
}
request.setAttribute("arr",arr);
%>
<!--list-->
<% List<user> list=new ArrayList<user>();
user user1=new user();
user1.setAge(15);
user1.setGender("男");
list.add(user1);
request.setAttribute("list",list);
%>

<!-- 数组和list -->
${arr[1].username }
${list[0].age }
${list[0].gender }

6.其他EL表达式运算

<!-- empty和条件运算 -->
empty运算:${empty info }
条件运算操作:${flag>flag1?"大于":"小于" }

JSTL

JSTL四大标签库:

1.core:核心库【重点】

2.fmt:格式化库

3.sql:数据库标签库,过时

4.xml:xml标签库,过时

core标签库(c库)

1.out和set

<!-- out输出 -->
<c:out value="username"/>
<!-- set输入参数 -->
<c:set var="code" value="xxx" scope="application"></c:set>
<c:set var="ccc" value="lll" scope="session"></c:set>
<!-- 根据var属性的值输出-->
${code }
${ccc }

2.url

value:指定一个路径,它会在路径前面自动加上项目名
 <c:url value="/index.jsp"
 子标签:<c:param> 用来给url后面添加参数
name:自动在url中添加参数名
value:自动在url中添加参数值
 <c:url>
 	<c:param name="username" value="张山"></c:param>
 </c:url>
 var:指定变量名,一旦添加了就不会把url不会输出到页面,而是把生成的url保存到域中。
 scope:它与var一起使用,用来保存url

补充:我也不会ヽ(ー_ー )ノ

3.if

对应Java中的if语句

<c:if test="布尔类型"></c:if>

if标签的test属性必须是一个boolean类型的值,如果test的值为true,那么执行if标签的内容,否则不执行

choose:对应Java中的if/else if/else 。

when标签的test为true时,会执行这个when的内容,当所有when标签的test都为false时,才会执行otherwise标签的内容

4.forEach

1.用来循环遍历数组,集合。
2.可以用来计算方法方式来循环。

计数方式:

<c:forEach var="i" begin="1" end="10">${i}</c:forEach>

属性:

var:循环变量
begin:设置循环变量从几开始
end:设置循环变量到几结束
step:设置步长

用来输出数组,集合:

<c:forEach items="${strs}" var="str">${str}<br/><c:forEach>

属性:

items:指定要循环的对象,它可以是一个数组或者一个集合
var:把数组和集合中的每个元素赋值给var指定的变量

5.其他等等

ftm标签库

直接上示例:

<!-- 格式化时间 -->
<c:set var="now" value="<%=new java.util.Date() %>"/>
时间:<fmt:formatDate value="${now }" pattern="yyyy-MM-dd hh:mm:ss"/><br>
时间:<fmt:formatDate value="${now }" type="time"/><hr>

<!-- 格式化数字 -->
<c:set var="n" value="<%=flag%>"></c:set>
<c:set var="nu" value="<%=num %>"></c:set>
<c:set var="nu1" value="<%=num1 %>"></c:set>
<!-- 四舍五入,不足补位 -->
<fmt:formatNumber value="${n }" pattern="0.00"></fmt:formatNumber>
<!-- 四舍五入,不足不补位 -->
<fmt:formatNumber value="${nu }" pattern="#.##"></fmt:formatNumber>
<fmt:formatNumber value="${nu1 }" pattern="#.##"></fmt:formatNumber>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值