JSP

JSP
基本语法
1、注释
java 风格://注释, 单行注释 /多行注释 /
显示注释:
隐式注释:<%–JSP注释–%>
2、Scripttlet
是JSP中最重要的脚本小程序,所有嵌入HTML中的Java程序都必须使用Scripttlet标记出来。代码会生成在编译后的Srevlet源码的类体中
1、<% %>:Java脚本段,可以定义局部变量、编写语句
2、<%! %>:声明,可以定义全局(成员)变量、方法、类
3、<%= %>:表达式、字面量、变量或具体内容
3、具体指令
1、page指令:
contentType属性:指定MIME(互联网)类型 <%@ page contentType=“text/html;charset=UTF-8”%>(text手误写成test会变成下载)
pageEncoding属性:指定编码格式<%@ page contentType=“text/html” pageEncoding=“UTF-8”
import属性:用来引入其他包<%@page import="java.util.
,java.io.
" %>
language:当前语言,目前只支持Java
isErrorPage:是否是处理错误的页面,默认是false;如果设置true表示当前页面是用来处理报错的,一般与errorPage一起使用
errorPage:报错时跳转的页面
JSP的编码取决于contentType属性中的charset的值,如果charset未设置,则使用pageEncoding的值,若两者都未设置,使用默认编码ISO-8859-1
<%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8”
2、include静态包含
<%@ include file=“要包含的文件路径”%>相对路径将一个页面包含在另一个页面中
效率高了一点点,耦合性较高,不够灵活
静态包含就是对内容进行了直接的替换,
只会生成一个源文件
不能有同名变量
语法:<%@include file=“要包含的页面路径” %>
3、taglib导入标签库
<%@taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>
include动态包含
语法:<jsp:include page=“要包含的页面或资源路径”></jsp:include>
相当于方法的调用,会生成两个源码文件,可以出现同名变量。降低耦合度低。
注:jsp:include双标签之间不能写任何内容,包括空格和换行。(除非有参数)
动态包含可以传递参数:
获取参数通过 request.getParameter(“name属性值”);
<jsp:param value=“参数值” name=“参数名”/>
value属性支持表达式
name属性不支持表达式
4、九个内置对象
request对象
代表了客户端的请求信息,作用域为一次请求
response对象
代表服务端的响应,只在JSP页面内有效
session对象
服务端为每个用户创建一个session,在一次对话中如何跳转都可以使用,但是新开浏览器无法使用
内部使用Map类来保存数据,格式为"key/value",value可以是复杂的对象类型
application对象
可将信息保存在服务器中一直有效,直到服务器关闭
out对象
页面输出
PageContext对象
取得任何范围的参数,
pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。
config对象
config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。 当一个Servlet 初始化时,容器把某些信息通过 config
page对象
只在一个页面保存属性,跳转之后无效
exception
异常信息
EL表达式
语法: k e y k e y 代 表 的 是 存 在 域 对 象 中 的 键 e l 表 达 式 一 般 操 作 的 是 域 对 象 或 字 面 量 , 不 能 操 作 变 量 。 取 值 范 围 : 从 小 范 围 开 始 找 , 找 到 即 止 , 如 果 都 未 找 到 , 返 回 空 字 符 串 。 p a g e 、 r e q u e s t 、 s e s s i o n 、 a p p l i c a t i o n 如 果 想 要 获 取 指 定 域 范 围 中 的 值 , 使 用 p a g e S c o p e 、 r e q u e s t S c o p e 、 s e s s i o n S c o p e 、 a p p l i c a t o n S c o p e 注 : 获 取 J a v a B e a n 中 的 属 性 时 , 属 性 需 要 提 供 g e t 方 法 E L 表 达 式 取 值 获 取 指 定 名 称 的 域 对 象 : {key} key代表的是存在域对象中的键 el表达式一般操作的是域对象或字面量,不能操作变量。 取值范围:从小范围开始找,找到即止,如果都未找到,返回空字符串。 page、request、session、application 如果想要获取指定域范围中的值,使用pageScope、requestScope、sessionScope、applicatonScope 注:获取JavaBean中的属性时,属性需要提供get方法 EL表达式取值 获取指定名称的域对象: keykeyelpagerequestsessionapplication使pageScoperequestScopesessionScopeapplicatonScopeJavaBeangetEL{uname }
获取session作用域的值: s e s s i o n S c o p e . u n a m e 获 取 J a v a B e a n 对 象 : {sessionScope.uname } 获取JavaBean对象: sessionScope.unameJavaBean{myUser }
获取JavaBean对象的属性:${myUser.userName } ----- m y U s e r . g e t U s e r N a m e ( ) 获 取 普 通 变 量 名 ( 取 不 到 ) : {myUser.getUserName() } 获取普通变量名(取不到): myUser.getUserName(){a }
获取字面量的值: 1 E L 使 用 字 符 串 方 法 获 取 字 符 串 中 是 指 定 字 符 的 下 标 : {1 } EL使用字符串方法 获取字符串中是指定字符的下标: 1EL使{uname.indexOf(“a”) }
字符串截取: u n a m e . s u b s t r i n g ( 0 , 2 ) E L 表 达 式 判 断 为 空 判 断 空 字 符 串 : {uname.substring(0,2) } EL表达式判断为空 判断空字符串: uname.substring(0,2)EL{empty str1 }

判断null: e m p t y s t r 2 &lt; b r / &gt; 判 断 字 符 串 : {empty str2 } &lt;br/&gt; 判断字符串: emptystr2<br/>{empty str3 }

判断字符串:KaTeX parse error: Expected '}', got '&' at position 15: {str3 != null &̲& str3 != "" }…{!empty list1 }

判断集合为空:${empty list1 } – ${empty list2 } – e m p t y l i s t 3 &lt; b r / &gt; 获 取 集 合 的 值 : {empty list3 } &lt;br/&gt; 获取集合的值: emptylist3<br/>{list1[0] }

获取集合中对象的属性: u s e r L i s t [ 0 ] . u s e r N a m e &lt; b r / &gt; 获 取 集 合 的 长 度 : {userList[0].userName }&lt;br/&gt; 获取集合的长度: userList[0].userName<br/>{userList.size() }

EL操作Map
判断map是否为空: e m p t y m a p &lt; b r / &gt; 获 取 m a p 对 象 : {empty map }&lt;br/&gt; 获取map对象: emptymap<br/>map{map }

获取map中指定的key对应的value:${map.uname } – m a p [ &quot; u a g e &quot; ] E L 运 算 加 法 : {map[&quot;uage&quot;] } EL运算 加法: map["uage"]EL{num1 + num2 }

减法: n u m 1 − n u m 2 &lt; b r / &gt; 乘 法 : {num1 - num2 }&lt;br/&gt; 乘法: num1num2<br/>{num1 * num2 }

除法:${num1 / num2 } – n u m 1 d i v n u m 2 &lt; b r / &gt; 大 小 比 较 : {num1 div num2 }&lt;br/&gt; 大小比较: num1divnum2<br/>{num1 > num2 } – ${num1 >10 } — ( n u m 1 + n u m 2 ) &lt; = 10 &lt; b r / &gt; 等 值 比 较 : {(num1+num2) &lt;= 10 }&lt;br/&gt; 等值比较: (num1+num2)<=10<br/>{aa == ab } – ${aa eq ac }

${(num1+num2) > 10 && aa == ab }

${(num1+num2) > 10 || aa == ab }

JSTL
JSTL的使用

			1、将jstl相关的jar包拷贝到项目的lib目录下jstl.jar和standard.jar
			2、在页面引入想要使用的库	
				<%@taglib uri="要使用的库的路径" prefix="前缀名" %>
			3、使用标签
				<前缀名:标签名   属性名="属性值"></前缀名:标签名>
			4、标签一般通过el表达式操作域对象
	if标签
		1、有主体内容
			<c:if test="判断条件,返回true或false" var="限域变量名,用户接收判断条件的返回值" scope="限域变量名的域范围 page|request|session|application">
			// 当满足条件时,执行的代码
			</c:if
		2、无主体内容
			<c:if test="判断条件,返回true或false" var="限域变量名,用户接收判断条件的返回值" scope="限域变量名的域范围 page|request|session|application">
			</c:if>
	choose.when.otherwise标签
		语法:
			<c:choose>
			 	<c:when test="返回boolean类型的判断条件">
			 		// 满足条件执行的代码
			 	</c:when>
			 	...
			 	<c:otherwise>
			 		// 当所有的when不执行时执行的代码
			 	</c:otherwise>
			 </c:choose>
		 1、choose标签与otherwise标签没有属性,when标签必须设置test属性
			  2、choose标签中只能包含when标签与otherwise标签,when标签与otherwise标签可以包含其它标签
			  	 报错信息: Illegal "c:if" after "c:otherwise" tag in "c:choose" tag.
			  3、choose标签中至少包含一个when标签,最多只有一个otherwise标签
			  	 报错信息:Illegal "choose" without child "when" tag
			  4、所有的when标签必须设置在otherwise标签之前
			  	 报错信息:Illegal "c:when" after "c:otherwise" tag in "c:choose" tag.
			  5、所有的when标签不执行的情况下才会执行otherwise标签
	foreach标签
		<c:forEach begin="开始循环的数" end="结束循环的数" var="当前成员的限域变量名" step="循环的间隔数"</c:forEach>
		for (int i = 0; i < 10; i++)---<c:forEach begin="0" end="10" var="i" step="1">
 	${i }
 </c:forEach>
		<c:forEach items="${userList }" var="item"  varStatus="itemp">               当前下标:${itemp.index }  -- 当前循环的次数:${itemp.count }--当前成员是否是第一次被循环:${itemp.first } -- 当前成员是否是最后一次被循环:${itemp.last }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值