四大作用域、九大隐式对象

一、JSP Java Server Pages
1、JSP表达式
<%= %>  就相当于输出
2、JSP片段
<% %>    相当于service方法中的代码
3、JSP申明  
<%!  %>  相对于类的成员属性或方法
4、注释
<%-- 注释的内容不可见 --%>

<%
  //注释内容可见
%>

<!-- HTML注释 -->
5、JSP指令   不直接输出内容,只是告诉JSP引擎如何处理JSP页面中的其余部分。
   page     当前jsp页面的一些设置
	---language  语言设置
	---import    导包
	---pageEncoding 编码设置
	---contentType  编码设置(一般设置一个就可以了)
	
	---errorPage 错误页面(当页面出现异常或错误时,跳转至指定页面,需要在指定页面的page指令中设置isErrorPage="true")
	---isErrorPage="true" 设置当前页面为错误页面。
	如果出现错误 返回500 服务器错误
	如果未写isErrorPage="true" 会返回200 表示没有错误
	错误页面的错误提示
    <%=exception.getMessage() %>
    <%=exception.getStackTrace()%>
    <%=exception.getLocalizedMessage() %>


   Include 包含
	----静态包含 <%@include file="路径" %>
		包含所有的代码和内容。
		
	----动态包含<jsp:include page="路径"></jsp:include>
		包含的是内容,而不是代码
	
   taglib
	----后续再讲

二、域对象(四大作用域对象)
1、全局域---整个应用
   ServletContext---application(隐式对象)
2、请求域---一次请求
   HttpServletRequest---request(隐式对象)   
3、页面域---当前页面
   PageContext---pageContext(隐式对象)
   当前页面,离开当前页面就访问不了。
4、会话域
   HttpSession---session(隐式对象)
   一次会话,浏览器不关,session就不会销毁。

三、九大隐式对象
application:全局
request:请求
pageContext:当前页面
session:会话
response:响应
config:配置
out:输出
page: this
exception: 异常

四、获取域中属性的多个值
通过名称获取一组值。
String val[] = request.getParameterValues("ck");
再遍历出来即可。
for(String s:val){
	//System.out.println(s);
}

四.EL表达式的使用

单个参数取值 
param.属性

多个同名参数如何取值
paramValues.属性[下标]

1.基本数据类型 ${base}

2.数组类型 ${arr[0]} -- ${arr[1]} -- ${arr[2]}

3.ArrayList集合类型 
${list[0]} -- ${list[1]} -- ${list[2]}\
${list.get(0)} -- ${list.get(1)} -- ${list.get(2)}

4.HashMap集合类型 
${map.name} -- ${map.age } -- ${map.sex }
${map['name'] } -- ${map['age'] } -- ${map['sex']

相等
${sex eq "男"} 
不等
${sex ne "男"} 
小于
${base lt 10 } 
大于
${base gt 10 } 
小于等于
${base le 10 } 
大于等于
${base ge 10 } 
并且
${true and false } 
或者
${true or false } 
非
${ not (10>5) } 

判断空 : ${empty map}
判断空 : ${map==null}

判断相同 : ${ sex eq "男" }
判断相同 : ${ sx==97 } char类型只能用数字比较
三元运算符 : ${2>1?true:false }
运算符 : 1.${true and false } 2.${true or false} 3.${10 lt 5} 4.${ 10 gt 5 } 5.${not false }

EL表达式数据回显
<input type="radio" name="sex" ${sex eq '男'?'checked':'' }><input type="radio" name="sex" ${sex eq '女'?'checked':'' }> 女



五.JSTL表达式
1.导入jstl标签库
<%@taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c"%>

2.单个条件
<c:if test="${sex eq '' }">
我是男人
</c:if>

3.多个条件
<c:choose>
	<c:when test="${sex eq ''}">
		我是个男人
	</c:when>
	<c:when test="${sex eq ''}">
		我是个女人
	</c:when>
	<c:otherwise>
		我到底是什么
	</c:otherwise>
	</c:choose>
	
4.异常处理
<c:catch var="cat">
		<!-- 有可能产生错误 -->
		<% out.print(10/0); %>
	</c:catch>	
	${cat}<br/>
	${cat.message }

<c:if test="${s!=null}">
异常 : ${s}<br/> 
异常 : ${s.message}<br/>
</c:if>

5.赋值/取值
<c:set var="name" value="张三"></c:set>
<c:out value="${name }"></c:out>

6.删除
<c:set var="age" value="18"></c:set>
删除之前 : ${age }<br/> 
<c:remove var="age"/>
删除之后 : ${age }


7.导入网页
<c:import url="http://www.baidu.com" charEncoding="UTF-8"></c:import>


8.跳转页面
<c:redirect url="demo02.jsp"></c:redirect>

9.循环
<c:forEach begin="1" end="10" step="1" var="s" varStatus="vs">
${s} -- ${vs.index} -- ${vs.first } -- ${vs.last }<br />
</c:forEach>

<c:forEach begin="1" end="10" step="1" var="s" varStatus="vs">
	<c:if test="${vs.first }">
		<span style="color:red">${s }</span>
	</c:if>
	<c:if test="${not vs.first }">
		<span style="color:blue">${s }</span>
	</c:if>
</c:forEach>


<c:forEach begin="1" end="10" step="1" var="s" varStatus="vs">
	<c:if test="${vs.index%2==0 }">
	<span style="color:red">${s}</span><br />
</c:if>
<c:if test="${vs.index%2!=0 }">
	<span style="color:blue">${s}</span><br />
</c:if>
</c:forEach>


<c:forEach items="${list }" var="s" varStatus="vs">
	${s} -- ${vs.index}<br/> 
</c:forEach>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值